请参阅两个示例re.split()的工作原理:
>>> re.split(',', 'a,b')
['a', 'b']
但
>>> re.split('(,)', 'a,b')
['a', ',', 'b']
为什么我在列表中得到','?如何避免呢?
我在问,因为我想使用类似'xy(a | b)cd'的表达式进行拆分。
答案 0 :(得分:10)
使用非捕获组,例如:
re.split('(?:,)', 'a,b')
答案 1 :(得分:1)
它是这样的,因为它是documented to work that way:
如果在模式中使用捕获括号,则表示所有组中的文本 该模式也作为结果列表的一部分返回。