括号中的正则表达式分割字符串
问题描述:
当我想知道背后的以下行为的原因:括号中的正则表达式分割字符串
>>> re.compile("(b)").split("abc")[1]
'b'
>>> re.compile("b").split("abc")[1]
'c'
我看来,当我周围添加分裂模式括号,重新将其添加入拼合阵列。但为什么?它是一致的,还是简单的正则表达式的独立特征?
答
它的re.split
一个特点,根据documentation:
如果捕获括号在图案中使用,然后在图案中的所有组的文本也返回结果列表的一部分。
通常,括号表示捕获组,并用于提取字符串的某些部分。阅读更多关于capture groups。
答
在任何正则表达式中,括号都表示一个捕获组。捕获组通常用于从匹配的字符串中提取值(连同re.match
或re.search
)。有关详细信息,请参阅official documentation(搜索(...)
)。
re.split
添加匹配组中的分裂值之间:
如果捕获括号在图案中使用,则在图案中的所有组的文本也被返回作为结果列表的一部分。