如何在多个分隔符上拆分字符串但只捕获一些?

haz*_*ard 5 python regex

我想在我提供的任何分隔符组合上拆分字符串.例如,如果字符串是:

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,我只想删除前导空格和尾随空格,. ,而不是空格.

Rom*_*est 5

我认为以下方法是最简单的方法......

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)