正则表达式中"."和"*"注意问题

前端之家收集整理的这篇文章主要介绍了正则表达式中"."和"*"注意问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
正则表达式中元字符“ . ”和“ * ”结合在一起的意思是除换行符之外的任意字符; @H_404_1@
如果我们要在一个中间部分不包含换行符的字符串中找出某些符合要求的文字: @H_404_1@
如:要在 eeeaabbdddddeewwwcc,这段文字中找出“aabb"与cc"之间的文字,但并不包含aabb或者cc,那么可以这样写 @H_404_1@
(?<=.*aabb).*[^cc] @H_404_1@
结果为:dddddeewww @H_404_1@

@H_404_1@
那么如果文字为:eeeaabbdddddeewwwcceeeaabbdddddeewwwcc @H_404_1@
那么结果就为:bbdddddeewwwcceeeaabbdddddeewww @H_404_1@
这样就不符合要求了,那么如果改为: @H_404_1@
(?<=.*aabb)[^cc]* @H_404_1@
那么结果就是: @H_404_1@
dddddeewww @H_404_1@
dddddeewww @H_404_1@

@H_404_1@
这里的两个正则表达式的区别为: @H_404_1@
(?<=.*aabb).*[^cc] ------> 0或者1次任意非换行符 + aabb+任意次非换行符(需要的部分)+cc @H_404_1@
其实个人感觉它是碰到了换行符才结束的,而不是碰到了cc结束的;
@H_404_1@

@H_404_1@
(?<=.*aabb)[^cc]*------> 0或者1次任意非换行符 + aabb+任意次非cc的字符(需要的部分) @H_404_1@
当发现有cc的存在,那么获取aabb和cc的中间部分;当碰到了cc本次结果获取结束,所以可以获得多次结果; @H_404_1@

猜你在找的正则表达式相关文章