我想在提供的定界符的任何组合上分割字符串。例如,如果字符串是:

s = 'This, I think,., کباب MAKES , some sense '

分隔符是\.,\s。但是我想捕获除空格\s之外的所有定界符。输出应为:
['This', ',', 'I', 'think', ',.,', 'کباب', 'MAKES', ',', 'some', 'sense']

到目前为止,我的解决方案是使用re模块:
pattern = '([\.,\s]+)'
re.split(pattern, s)

但是,这也会捕获空格。我尝试使用其他模式,例如[(\.)(,)\s]+,但它们不起作用。

编辑:@PadraicCunningham做了一个敏锐的观察。对于像Some text ,. , some more text这样的定界符,我只想从,. ,除去开头和结尾的空格,而不要删除其中的空格。

最佳答案

我想以下方法是最简单的方法...

s = 'This, I think,., کباب MAKES , some sense '
pattern = '([\.,\s]+)'
splitted = [i.strip() for i in re.split(pattern, s) if i.strip()]

输出:
['This', ',', 'I', 'think', ',.,', 'کباب', 'MAKES', ',', 'some', 'sense']

关于python - 如何在多个定界符上分割一个字符串,但只捕获一些?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39691091/

10-12 22:21