在Python中拆分带有多个分隔符的字符串

Dav*_*Mar 12 python string split delimiter

我正在使用正则表达式使用多个分隔符分割字符串.但是如果我的两个分隔符在字符串中彼此相邻,则会在结果列表中放入一个空字符串.例如:

re.split(',|;', "This,is;a,;string")
Run Code Online (Sandbox Code Playgroud)

结果是

['This', 'is', 'a', '', 'string']
Run Code Online (Sandbox Code Playgroud)

有没有办法避免''在没有添加,;分隔符的情况下进入我的列表?

Ósc*_*pez 32

试试这个:

import re
re.split(r'[,;]+', 'This,is;a,;string')
> ['This', 'is', 'a', 'string']
Run Code Online (Sandbox Code Playgroud)

  • 这是正常的,你使用多个分隔符.如果你需要过滤空字符串,那么这样做:`[s for re.split(r'[,;] + | string','This,is; a,; string')if s]` (7认同)
  • 然后这将工作:`re.split(r'[,;] + | string','This,is; a ,; string')` (2认同)