试图理解 python 中的正则表达式示例,这是我的代码
line='bar asdfgh klmn, foo'
print(re.split(r'(;|,|\s)\s*',line))
#output is ['bar', ' ', 'asdfgh', ' ', 'klmn', ',', 'foo']
在输出中它显示了字符串和分隔符,最后一个分隔符是一个有五个空格的逗号,而不仅仅是一个逗号
如果分隔符只是一个逗号,输出不应该是这样的吗?
#output ['bar', ' ', 'asdfgh', ' ', 'klmn', ',', ' foo']
请您参考如下方法:
如果在正则表达式中使用捕获组,则 re.split 包含捕获组的内容。但是,它仍然使用整个匹配项作为分隔符,这会导致您观察到的行为。如果您希望 "".join(split_results) 等于原始字符串,则需要捕获整个分隔符(并在现在有括号的地方使用非捕获括号:r'((?:;|,|\s)\s*)').
