我想分割使用-
,+=
,==
,=
,+
作爲分隔符的字符串,而空白。我想保留分隔符,除非它是空格。Python的正則表達式 - 多餘的匹配數
我試着用下面的代碼來實現這一目標:
def tokenize(s):
import re
pattern = re.compile("(\-|\+\=|\=\=|\=|\+)|\s+")
return pattern.split(s)
print(tokenize("hello-+==== =+ there"))
我預計輸出爲
['hello', '-', '+=', '==', '=', '=', '+', 'there']
但是我
['hello', '-', '', '+=', '', '==', '', '=', '', None, '', '=', '', '+', '', None, 'there']
這幾乎什麼我想要的,除了有很多無關的None
和空字符串。
爲什麼這樣做,我該如何改變它以得到我想要的?
空的字符串是因爲你有兩個匹配的字符彼此相鄰,所以當拆分時,他們之間有一個「'」。這有點不直觀,在混合 – jozefg 2013-05-10 18:51:25