这两条正则有什么区别?

r1 = /do(?=not)/
r2 = /(?=not)do/

阅读 1.2k
1 个回答
(?=exp)也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。比如\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I'm singing while you're dancing.时,它会匹配sing和danc。

实际使用中零宽正预测一般都放在要匹配的模式后面用于限定,比如上面(摘抄自百度)给的例子。

如果是/(?=not)do/应该匹配不到东西。

如果要放在前面可以负零宽/(?!=not)do/或零宽正回顾/(?<=not)do/

基础的可以参见https://baike.baidu.com/item/...

详细的可以再看https://developer.mozilla.org...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题