Python 正则表达式中的“?:”是什么意思?
非捕获组
如果 我们不想要某个组捕获其匹配内容,可以使用 Set(?:Value) 这种正则表达式。问号和开括号后的冒号就是创建非捕获组的语法。
正则表达式 Set(Value)? 将匹配 Set 或 SetValue。第一种情况下,第一个(也是唯一的)捕获组仍然是空的。第二种情况下,第一个捕获组将匹配 Value。最后出现的问号是量词,使前一个标记变为可选项。
Set(?:Value) 将匹配 Setxxxxx,即所有以 Set 开头但不后接 Value 的字符串。这将是非捕获组。
color=(?:red|green|blue) 是另一个带有非捕获组的正则表达式。此正则表达式没有量词。
通常情况下,支持命名捕获的正则表达式风格具有将所有未命名组变成非捕获组的选项。
广告