(?:pattern) 与 (?=pattern)的区别


共同点

(?:pattern) 与 (?=pattern)都匹配分组,但不会把分组放到匹配结果中。

区别

(?:pattern) 匹配得到的结果包含pattern。
(?=pattern) 则不包含。

对字符串:"industry abc"的匹配结果:
industr(?:y|ies) ---> "industry"
industr(?=y|ies) ---> "industr"

是否消耗字符

(?:pattern) 消耗字符,下一字符匹配会从已匹配后的位置开始。
(?=pattern) 不消耗字符,下一字符匹配会从预查之前的位置开始,只预查,不移动匹配指针。

 

 


出处:https://www.jianshu.com/p/43af3e83e6e9


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM