提问者:小点点

在多个分隔符上拆分字符串,而不是仅在空格上拆分字符串


我在做

delimiters = [r'\r\n', r'\.\.\.', r'\W']
pattern = regex.compile(r'(' + r'|'.join(delimiters) + r')', flags=regex.V1)
pattern.split(s)

若要在多个分隔符上拆分S(使用括号保留输出中的分隔符),请执行以下操作。

当它单独发生时,我该如何防止在空白上分裂? 例如,abc,def geh应该生成['abc',‘,’,'def geh']。 也就是说,当空白与另一个分隔符一起出现时,应该执行拆分,但当标记之间只有空白时则不执行拆分。

(这实际上是两个问题,因为现在我得到的是['abc',‘,’,'','','def','','geh'],也就是说,多个分隔符分别出现,而我希望它们合并出现。)


共1个答案

匿名用户

对于regex模块,您可以使用:

import regex
arr = ['abc,, def', 'abc, def geh']
res = [regex.split(r'(?=[^\w\s])|(?<=[^\w\s]\s*\b)',x) for x in arr]
print(res)

打印:

[['abc', ',', ', ', 'def'], ['abc', ', ', 'def geh']]