我想分割一个字符串,如下所示
text="one,two;three.four:"
进入列表
textOut=["one", ",two", ";three", ".four", ":"]
我试过
import re
textOut = re.split(r'(?=[.:,;])', text)
但这并没有分裂任何东西。
答案 0 :(得分:1)
我不知道你的字符串中还能发生什么,但是这样可以解决这个问题吗?
>>> s='one,two;three.four:'
>>> [x for x in re.findall(r'[.,;:]?\w*', s) if x]
['one', ',two', ';three', '.four', ':']
答案 1 :(得分:1)
我会在这里使用re.findall
而不是re.split
:
>>> from re import findall
>>> text = "one,two;three.four:"
>>> findall("(?:^|\W)\w*", text)
['one', ',two', ';three', '.four', ':']
>>>
以下是上面使用的正则表达式模式的细分:
(?: # The start of a non-capturing group
^|\W # The start of the string or a non-word character (symbol)
) # The end of the non-capturing group
\w* # Zero or more word characters (characters that are not symbols)
有关详细信息,请参阅here。