作者LIAR (玻璃做的大叔)
看板RegExp
标题[问题] 如何让搜寻不要跨行?
时间Wed Aug 3 22:28:37 2011
我目前用madedit,如果我想从文章中每一行的某字串开始,到同一行尾都要标示,
譬如说从
Program开始到"那一行的结束"一次标示,会有下面两种情况:
1.内容有中文字,所以不能用
Program[[:print:]]*
这种写法,遇到中文会停下,中文有特殊字元。
2.
Program[^$]*
我原本以为会把$当成每一行的结束,所以会找到行尾而停下,但结果
却是找到文章结束。
我目前知道正规表示法如果有很多范围的都符合要求,系统会选择最长的,但
这表示我用的$不被当成行末吗?请问我应该怎麽写才对?
--
太初有道,道与耶和华同在,道就是耶和华。这道太初与耶和华同在。
万物乃藉祂所造,凡被造的没有一样不是藉着祂所造的。生命在祂里头,
这生命就是人的光。光照在黑暗里,黑暗却不接受光。
吾辈乃生於黑暗,行於黑暗。因神之指引,行向光明;又因撒旦诱惑,回归黑暗。
我不断地徘徊於光明与黑暗之间,从被造之日至今,又自今直到那审判之日的来临。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.176.38.160
1F:推 mars90226:Program.*$ $放在[]里面应该就只是个$ 08/03 22:56
2F:→ LIAR:我试过了,但根据"最长符合"的原则,也是跑到最後一行。 08/04 00:13
3F:→ LIAR:不过一楼说的没错,中括号内的确实都当成一般文字,好像 08/04 00:14
4F:→ LIAR:自动跳脱的感觉,刚才用!@#$%^&*()试过的结论XD 08/04 00:15
5F:→ smlboby:用UltraEdit试,Program*$可正常运作,*是任意字符,$是结尾 08/04 00:28
6F:推 mars90226:我用Notepad++是OK,不知道你那个可不可以选择贪婪与否 08/04 14:55
7F:→ mars90226:Program.*?$ 这样呢? "?"表示非贪婪 08/04 14:58
8F:→ mars90226:等等 我记得.不会匹配\n 这样应该只会在同一行阿... 08/04 15:01
9F:→ LIAR:喔喔喔!感谢mars90226,加个问号确实成功了,但"贪婪"是什麽 08/04 17:12
10F:→ LIAR:?我在学正规表示的时候没看过这个耶? 08/04 17:13
11F:→ LIAR:另外smlboby说的感觉好像DOS档名的万用字元,但在MadEdit的 08/04 17:14
12F:→ LIAR:正规表示玩法中不被承认(囧rz)除非我把关键字摆行尾 08/04 17:16
13F:→ LIAR:啊!请问那个".不会匹配\n"让我想到grep以行为单位的运作情况 08/04 17:20
14F:→ LIAR:,这样确实不会有我的问题就是了,不晓得madedit怎麽设计的。 08/04 17:20
15F:推 mars90226:贪婪就是会尽量匹配最多 08/04 17:27