Python 正则表达式中的"?:"是什么意思?

pythonserver side programmingprogramming

非捕获组

如果我们不希望组捕获其匹配项,我们可以将此正则表达式写为 Set(?:Value)。问号和左括号后的冒号是创建非捕获组的语法。 

正则表达式 Set(Value)? 匹配 Set 或 SetValue。在第一种情况下,第一个(也是唯一的)捕获组保持为空。在第二种情况下,第一个捕获组匹配 Value。出现在末尾的问号是使前一个标记可选的量词。 

Set(?:Value) 匹配 Setxxxxx,即所有以 Set 开头但不以 Value 结尾的字符串。这些将是非捕获组。

color=(?:red|green|blue) 是另一个具有非捕获组的正则表达式。此正则表达式没有量词。

支持命名捕获的正则表达式风格通常有一个选项,可以将所有未命名的组变成非捕获组。


相关文章


有用资源