wwwwffff 发表于 2011-1-6 07:23:26

[解决一半]求一正则

本帖最后由 wwwwffff 于 2011-1-10 00:40 编辑

从一文本文档中获取带有关键字的那行及之后的几行(最多3行),并且之后的那几行里不能带有关键字也不能是空行。
先谢谢了,搞了几天都没结果。
比如在下面中获取带有关键字148的那行及之后最多3行最少0(不能有148也不能是空行,就是遇到148或空行就停住,不往下了)
===============================================================
〖005期〗〖173中148〗〖单〗开01中
===============================================================
〖006期〗〖174中145〗〖单〗开41中
===============================================================
〖007期〗〖175中146〗〖单〗开27中
===============================================================
〖008期〗〖176中147〗〖双〗开40中
===============================================================
〖009期〗〖177中148〗〖双〗开16中
===============================================================
〖010期〗〖178中148〗〖单〗开02错
===============================================================
〖011期〗〖179中149〗〖双〗开02中
===============================================================
〖012期〗〖180中142〗〖双〗开28中
===============================================================
〖013期〗〖181中151〗〖双〗开40中
===============================================================
〖014期〗〖182中148〗〖单〗开41中

===============================================================
〖015期〗〖183中153〗〖单〗开13中

lxz 发表于 2011-1-6 08:02:41

是六合彩吗?

binghc 发表于 2011-1-6 08:29:01

本帖最后由 binghc 于 2011-1-6 08:38 编辑

嘿嘿,终于看到一道比较有意思的题目了:
不知道你这个‘====’分隔线算不算一行,如果不算可以先用stringregreplace替换掉:
这题比较有意思,为了让也别人玩一玩,我就将我的答案隐藏了{:face (303):}

**** Hidden Message *****

binghc 发表于 2011-1-6 09:18:30

本帖最后由 binghc 于 2011-1-7 13:40 编辑

完美版:(如果只有一行不会匹配出之后的空行)〖005期〗〖173中148〗〖单〗开01中
〖006期〗〖174中145〗〖单〗开41中
〖007期〗〖175中146〗〖单〗开27中
〖008期〗〖176中147〗〖双〗开40中
〖009期〗〖177中148〗〖双〗开16中
〖010期〗〖178中148〗〖单〗开02错
〖011期〗〖179中149〗〖双〗开02中
〖012期〗〖180中142〗〖双〗开28中
〖013期〗〖181中151〗〖双〗开40中
〖014期〗〖182中148〗〖单〗开41中



〖015期〗〖183中153〗〖单〗开13中

〖005期〗〖173中148〗〖单〗开01中



〖005期〗〖173中148〗〖单〗开01中
已修改:(不包含空行)
**** Hidden Message *****

komaau3 发表于 2011-1-6 11:58:24

急切的想看看楼上的强大回复

afan 发表于 2011-1-6 12:00:07

描述不是很清楚…
后面最多3行,最少是1行还是0行?
等于号那行算不算?
自己看着改吧~(?<=^|\n)\V+148\V+(?:\r\n=+\h*\v+(?:(?<!148).)+(?=\r|$)){0,3}

wwwwffff 发表于 2011-1-6 23:13:30

本帖最后由 wwwwffff 于 2011-1-6 23:19 编辑

回复 6# afan

好强啊。
    等号那行也算,那行也有可能是其他东西,无所谓只要是在它下面就行。
想问一下你的代码中。一会\n一会\r\n或\v的,有何区别?不能都用\v吗

wwwwffff 发表于 2011-1-6 23:18:59

回复 4# binghc


    厉害。
不够我的意思是遇到空行就停住,空行下面的不要了。

wwwwffff 发表于 2011-1-7 01:45:40

假如是求某行,包含关键字X但不包含关键字Y,怎么写?

binghc 发表于 2011-1-7 13:36:00

本帖最后由 binghc 于 2011-1-7 14:01 编辑

回复 8# wwwwffff


    看来是我看错题目要求了,不过这样也更简单!4#已修改

newuser 发表于 2011-1-11 15:48:28

回复 4# binghc
学习,正则好强大 !
页: [1]
查看完整版本: [解决一半]求一正则