我想在我提供的任何分隔符组合上拆分字符串.例如,如果字符串是:
s = 'This, I think,., ???? MAKES , some sense '
Run Code Online (Sandbox Code Playgroud)
而分隔符是\.,,和\s.但是我想捕获除空白之外的所有分隔符\s.输出应该是:
['This', ',', 'I', 'think', ',.,', '????', 'MAKES', ',', 'some', 'sense']
Run Code Online (Sandbox Code Playgroud)
到目前为止我的解决方案是使用re模块:
pattern = '([\.,\s]+)'
re.split(pattern, s)
Run Code Online (Sandbox Code Playgroud)
但是,这也捕获了空白.我尝试过使用其他模式,[(\.)(,)\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()]
Run Code Online (Sandbox Code Playgroud)
输出:
['This', ',', 'I', 'think', ',.,', '????', 'MAKES', ',', 'some', 'sense']
Run Code Online (Sandbox Code Playgroud)