我想根据我提供的分隔符的任意组合拆分字符串。例如,如果字符串是:
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 ,. 这样的分隔符。 ,更多文本
,我只想从中删除前导和尾随空格,。 ,
而不是空格。
最佳答案
我想下面的方法是最简单的方法......
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/