(?=regex) VS (?:regex)

3

(?=regex)(?:regex)在JavaScript中有什么区别?

请举例解释一下。


4
MDN在“正则表达式中特殊字符的含义”下为每个字符提供了解释和示例。 - Jonathan Lonowski
1
http://www.rexegg.com/regex-disambiguation.html#lookarounds - PM 77-1
1
你也可以尝试 Stack Overflow 上的正则表达式文档 - 捕获组前瞻和后顾 - Jonathan Lonowski
这是Google中的第一个结果,因此它很可能满足用户的问题。 - greg
1个回答

12

(?=正则表达式) 是正向预查,它匹配主表达式后面的一个分组,但不将其包含在结果中。
示例:

(?=正则表达式) 是正向预查,它匹配主表达式后面的一个分组,但不将其包含在结果中。
示例:

\d(?=px)
1pt 2px 3em 4px

这将仅匹配24,而不是整个2px4px

(?:regex)是一个非捕获组,它将多个标记组合在一起而不创建捕获组。
例如:

(?:ha)+
hahaha haa hah!

这将匹配每个ha,但不会为其创建一个组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接