【问题标题】:JavaScript: What's the difference between a positive look ahead and a non-capturing group? [duplicate]JavaScript:积极展望和非捕获组之间有什么区别? [复制]
【发布时间】:2016-09-13 11:38:32
【问题描述】:

如果我做对了,那么一个积极​​的前瞻 (?=) 以及一个非捕获组 (?:) 用于在最终匹配结果中排除部分字符串。

前瞻组和非捕获组有什么区别?

谁能解释一下?最好有一个简单易懂的例子?

【问题讨论】:

  • 他们都不排除一部分。前瞻只是期待匹配/失败模式,但之后光标仍位于同一位置。非捕获组正常匹配,但不会将其匹配存储到您以后可以引用的组中。

标签: javascript regex


【解决方案1】:

正面展望是零宽度断言。这意味着它不会消耗输入,例如在

/(?=.)./

(?=.) 部分将匹配字符串的第一个字符,. 将匹配相同的字符。另一方面

/(?:.)./

(?:.) 部分将匹配字符串的第一个字符(就像之前一样),但 . 将匹配第二个字符,因为第一个字符将被括号占用。

【讨论】:

  • 太棒了。我知道了 ! :) 非常感谢。
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 2016-09-05
  • 1970-01-01
  • 2011-09-01
  • 2017-08-22
  • 1970-01-01
  • 2021-04-19
  • 2013-06-10
相关资源
最近更新 更多