正则表达式中`?:`的含义是什么?

时间:2012-06-28 10:12:34

标签: regex

我看到了一个匹配网址的正则表达式:/^\/users?(?:\/(\d+)(?:\.\.(\d+))?)?/。我对每组比赛开始时?:的使用感到困惑。

这是什么意思?

3 个答案:

答案 0 :(得分:9)

(?:)()是表达式的一部分)是非捕获组

请参阅http://www.regular-expressions.info/refadv.html

答案 1 :(得分:5)

这是一个非捕获组,因此如果匹配则不会捕获特定组。

http://www.regular-expressions.info/refadv.html

答案 2 :(得分:1)

通读:http://docs.python.org/library/re.html

  

(?:...)

常规括号的非捕获版本。匹配括号内的正则表达式,但在执行匹配后或在模式中稍后引用时,无法检索组匹配的子字符串。