找回密码
 加入
搜索
查看: 2184|回复: 8

[效率算法] 已解决 如何用正则删除文本最后10行

  [复制链接]
发表于 2012-7-10 15:34:05 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2012-7-10 17:41 编辑

1.  文本小于10行则不进行任何操作
2.  文本大于10行且最后行是空行则删除文本倒数第二行至倒数第11行(就是保留最后那个空行)
3.  文本大于10行且最后行不是空行则删除最后10行

用正则怎样实现?
发表于 2012-7-10 16:47:24 | 显示全部楼层
正则不回 帮顶楼
发表于 2012-7-10 17:10:54 | 显示全部楼层
StringRegExpReplace($Str, '(?<=[^\r\n])(?:\r\n\V+){10}$|(^\V+(?:\v+\V+){9})(?s).*(?=\r\n$)', '\1')
 楼主| 发表于 2012-7-10 17:17:04 | 显示全部楼层
本帖最后由 Qokelate 于 2012-7-10 17:18 编辑

回复 3# afan


   

$string = _
                '1' & @CRLF & _
                '2' & @CRLF & _
                '3' & @CRLF & _
                '4' & @CRLF & _
                '5' & @CRLF & _
                '6' & @CRLF & _
                '7' & @CRLF & _
                '8' & @CRLF & _
                '9' & @CRLF & _
                '10' & @CRLF & _
                '11' & @CRLF & _
                '12' & @CRLF & _
                '13' & @CRLF


$b = StringRegExpReplace($string, '(?<=[^\r\n])(?:\r\n\V+){10}$|(^\V+(?:\v+\V+){9})(?s).*(?=\r\n$)', '\1')
MsgBox(0, 0, $b)


最后行是空行的话应该是删除倒数第2行至倒数第11行   而不是保留10行   (见要求2)  怎样改啊
发表于 2012-7-10 17:22:07 | 显示全部楼层
赚分来的。。。正则不懂
发表于 2012-7-10 17:24:57 | 显示全部楼层
回复 4# Qokelate


    看错了,还以为是删除倒数第二行至第11行,漏了倒数
StringRegExpReplace($Str, '(?<=[^\r\n])(?:\r\n\V+){10}(\r\n)?$', '\1')

评分

参与人数 1金钱 +20 收起 理由
Qokelate + 20 很棒的见解

查看全部评分

发表于 2012-7-10 17:31:26 | 显示全部楼层
晕,我没看错,是你开始就说错…
2.  文本大于10行且最后行是空行则删除文本倒数第二行至第11行(就是保留最后那个空行)
 楼主| 发表于 2012-7-10 17:31:34 | 显示全部楼层
问题解决   3Q
 楼主| 发表于 2012-7-10 17:42:27 | 显示全部楼层
回复 7# afan


    嗯  是我描述错了    不好意思
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 21:52 , Processed in 0.079605 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表