(?: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

posted @ 2019-06-10 10:53  全玉  阅读(1148)  评论(0编辑  收藏  举报