微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

正则表达式中元字符“ . ”和“ * ”结合在一起的意思是除换行符之外的任意字符;
如果我们要在一个中间部分不包含换行符的字符串中找出某些符合要求的文字
如:要在 eeeaabbdddddeewwwcc,这段文字中找出“aabb"与cc"之间的文字,但并不包含aabb或者cc,那么可以这样写
(?<=.*aabb).*[^cc]
结果为:dddddeewww

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐