正则表达式中元字符“ . ”和“ * ”结合在一起的意思是除换行符之外的任意字符;
如果我们要在一个中间部分不包含换行符的字符串中找出某些符合要求的文字:
(?<=.*aabb).*[^cc]
结果为:dddddeewww
那么如果文字为:eeeaabbdddddeewwwcceeeaabbdddddeewwwcc
那么结果就为:bbdddddeewwwcceeeaabbdddddeewww
这样就不符合要求了,那么如果改为:
(?<=.*aabb)[^cc]*
那么结果就是:
dddddeewww
dddddeewww
这里的两个正则表达式的区别为:
(?<=.*aabb).*[^cc] ------> 0或者1次任意非换行符 + aabb+任意次非换行符(需要的部分)+cc
其实个人感觉它是碰到了换行符才结束的,而不是碰到了cc结束的;
(?<=.*aabb)[^cc]*------> 0或者1次任意非换行符 + aabb+任意次非cc的字符(需要的部分)
原文链接:https://www.f2er.com/regex/362572.html