Den*_*nis 2 python regex split
我需要分割一个字符串。我正在使用这个:
\n\ndef ParseStringFile(string):\np = re.compile(\'\\W+\')\nresult = p.split(string)\nRun Code Online (Sandbox Code Playgroud)\n\n但我有一个错误:我的结果有两个空字符串 (\'\'),一个位于 \'\xd0\x9b\xd0\xb5\xd0\xb2\' 之前。我该如何摆脱它们?
\n\n
正如 nhahtdh 指出的,空字符串是预期的,因为\n字符串的开头和结尾都有一个,但如果它们打扰你,你可以filter非常快速有效地使用它们。
>>> filter(None, ['', 'text', 'more text', ''])
['text', 'more text']
Run Code Online (Sandbox Code Playgroud)
filter通常采用可调用函数作为第一个参数,并创建一个列表,其中删除了所有function(element)返回的元素False。这里给出了,它会触发一个特殊情况:如果为 false,None则删除该元素。bool(element)因为bool('')是假的,所以它被删除了。
另请参阅手册。