在Python正则表达式中访问分隔符split()

时间:2018-03-30 20:33:59

标签: python regex

在python re模块中,我正在使用re.split()

string = '$aText$bFor$cStack$dOverflow'
parts = re.split(r'\$\w', string)
assert parts == ['Text', 'For', 'Stack', 'Overflow']

我的问题:是否可以同时返回分隔符的实例作为部件列表?我想知道各个部分之前的分隔符是$ c,$ d等。

我想我可以先调用findall(),但这意味着手动调用列表中的位置,这会引入错误。这似乎也不是pythonic。

1 个答案:

答案 0 :(得分:5)

如果将模式放在捕获组中,分隔符将显示在结果中:

>>> string = '$aText$bFor$cStack$dOverflow'
>>> re.split(r'(\$\w)', string)
['', '$a', 'Text', '$b', 'For', '$c', 'Stack', '$d', 'Overflow']