我想在提供的定界符的任何组合上分割字符串。例如,如果字符串是:
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/