Python正则表达式中的“?:”是什么意思?
非捕获组
如果我们不希望组捕获其匹配项,则可以将此正则表达式编写为Set(?:Value)。开括号后的问号和冒号是创建非捕获组的语法。
正则表达式集(值)?与Set或SetValue匹配。在第一种情况下,第一个(也是唯一一个)捕获组保持为空。在第二种情况下,第一个捕获组匹配Value。最后出现的问号是使上一个标记成为可选标记的量词。
Set(?:Value)匹配Setxxxxx,即所有以Set开头但不跟Value的字符串。这将是非捕获组。
color=(?:red|green|blue)是另一个具有非捕获组的正则表达式。此正则表达式没有量词。
支持命名捕获的正则表达式类型通常可以选择将所有未命名的组转换为非捕获组。