在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。
答案 0 :(得分:5)
如果将模式放在捕获组中,分隔符将显示在结果中:
>>> string = '$aText$bFor$cStack$dOverflow'
>>> re.split(r'(\$\w)', string)
['', '$a', 'Text', '$b', 'For', '$c', 'Stack', '$d', 'Overflow']