正则表达式 – 正面和负面的前瞻和量词

前端之家收集整理的这篇文章主要介绍了正则表达式 – 正面和负面的前瞻和量词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释为什么模式(负向前瞻)

/aa.+(?!cc)/g

匹配所有4行

aabbcc
aabb
aabbcc
aabb

虽然我预计只会匹配以下两行:

aabbcc
aabb
aabbcc
aabb

模式(正向前瞻):

/aa.+(?=cc)/g

仅匹配2行:

aabbcc
aabb
aabbcc
aabb

我会假设的?

我正在使用PCRE风味的RegEx引擎.

解决方法

因为.在这种模式中aa. (?!cc)匹配所有字符到最后.由于在最后一个之后没有字符串cc,因此该正则表达式匹配所有上述字符串.

aa(?!.*cc).+

像上面那样修改你的正则表达式以匹配第2行和第4行. (?!.* cc)否定前瞻声明在下一个字符串中不存在将使用匹配的字符串cc.图案.

DEMO

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