分割字符串时正则表达式模式中的括号

时间:2012-03-01 23:12:33

标签: python regex

我想知道以下行为背后的原因:

>>> re.compile("(b)").split("abc")[1]
'b'
>>> re.compile("b").split("abc")[1]
'c'

我似乎在分割模式周围添加括号时,将其添加到分割数组中。但为什么?它是一致的,还是仅仅是正则表达式的孤立特征。

2 个答案:

答案 0 :(得分:6)

根据documentation

,这是re.split的一项功能
  

如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。

通常,括号表示捕获组,用于提取字符串的某些部分。详细了解capture groups

答案 1 :(得分:4)

在任何正则表达式中,括号表示捕获组。捕获组通常用于从匹配的字符串中提取值(与re.matchre.search一起使用)。有关详细信息,请参阅official documentation(搜索(...))。

re.split在分割值之间添加匹配的组:

  

如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。