如何在re.split()函数中对正则表达式进行分组?

15 投票
2 回答
7787 浏览
提问于 2025-04-17 11:19

这里有两个例子来展示 re.split() 是怎么工作的:

>>> re.split(',', 'a,b')
['a', 'b']

但是

>>> re.split('(,)', 'a,b')
['a', ',', 'b']

为什么我在列表里会看到 ',' 呢?怎么才能避免它呢?

我问这个问题是因为我想用类似 'xy(a|b)cd' 的表达式来进行分割。

2 个回答

2

之所以这样工作,是因为文档上是这样说明的

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

22

使用一个不捕获的分组,比如:

re.split('(?:,)', 'a,b')

撰写回答