【发布时间】:2016-09-13 11:38:32
【问题描述】:
如果我做对了,那么一个积极的前瞻 (?=) 以及一个非捕获组 (?:) 用于在最终匹配结果中排除部分字符串。
前瞻组和非捕获组有什么区别?
谁能解释一下?最好有一个简单易懂的例子?
【问题讨论】:
-
他们都不排除一部分。前瞻只是期待匹配/失败模式,但之后光标仍位于同一位置。非捕获组正常匹配,但不会将其匹配存储到您以后可以引用的组中。
标签: javascript regex
如果我做对了,那么一个积极的前瞻 (?=) 以及一个非捕获组 (?:) 用于在最终匹配结果中排除部分字符串。
前瞻组和非捕获组有什么区别?
谁能解释一下?最好有一个简单易懂的例子?
【问题讨论】:
标签: javascript regex
正面展望是零宽度断言。这意味着它不会消耗输入,例如在
/(?=.)./
(?=.) 部分将匹配字符串的第一个字符,. 将匹配相同的字符。另一方面
/(?:.)./
(?:.) 部分将匹配字符串的第一个字符(就像之前一样),但 . 将匹配第二个字符,因为第一个字符将被括号占用。
【讨论】: