我想知道以下行为背后的原因:
>>> re.compile("(b)").split("abc")[1]
'b'
>>> re.compile("b").split("abc")[1]
'c'
我似乎在分割模式周围添加括号时,将其添加到分割数组中。但为什么?它是一致的,还是仅仅是正则表达式的孤立特征。
答案 0 :(得分:6)
答案 1 :(得分:4)
在任何正则表达式中,括号表示捕获组。捕获组通常用于从匹配的字符串中提取值(与re.match
或re.search
一起使用)。有关详细信息,请参阅official documentation(搜索(...)
)。
re.split
在分割值之间添加匹配的组:
如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。