>>> import re
>>> re.split(r'[ "]+', ' a n" "c ')
['', 'a', 'n', 'c', '']
当有前面或后面的空格时,分割后会有空字符串。 我该如何避免那些空字符串?感谢。
答案 0 :(得分:4)
空值是分割之间的东西。 re.split()
不适合这项工作。
我建议您选择匹配的内容。
>>> re.findall(r'[^ "]+', ' a n" "c ')
['a', 'n', 'c']
如果必须使用拆分,则可以使用列表推导并直接过滤它。
>>> [x for x in re.split(r'[ "]+', ' a n" "c ') if x != '']
['a', 'n', 'c']
答案 1 :(得分:3)
这就是re.split
应该做的事情。你要求它在任何空格或引号的运行上拆分字符串;如果它在开始时没有返回一个空字符串,你就无法将这种情况与没有前面空格的情况区分开来。
如果你真正要求的是找到所有非空格或引号字符的运行,那就写下:
>>> re.findall(r'[^ "]+', ' a n" "c ')
['a', 'n', 'c']
答案 2 :(得分:1)
我喜欢abarnert解决方案。
但是,您也可以(也许不是pythonic方式):
myString.strip()
在split
(或其他)之前。