我想要找到空標籤,這裏是一個例子如何正則表達式在python中的空字符串?
txt ="<lol1><><lol2>"
rgx = "<([a-zA-Z_0-9]+)>"
print re.findall(rgex, txt)
我得到這個
['lol1', 'lol2']
我想
['lol1', '', 'lol2']
我怎麼可以用正則表達式做到這一點?
我想要找到空標籤,這裏是一個例子如何正則表達式在python中的空字符串?
txt ="<lol1><><lol2>"
rgx = "<([a-zA-Z_0-9]+)>"
print re.findall(rgex, txt)
我得到這個
['lol1', 'lol2']
我想
['lol1', '', 'lol2']
我怎麼可以用正則表達式做到這一點?
使用rgx = "<([a-zA-Z_0-9]*)>"
關鍵的一點是使用*
,在那裏你正在使用+
,這意味着「一個或多個」,這意味着,「前面的零個或多個」。
無需正則表達式
>>> s="txt ="<lol1><><lol2>"
>>> for i in txt.split(">"):
... if "<" in i:
... print i[i.find("<")+1:]
...
lol1
lol2
>>> [i[i.find("<")+1:] for i in txt.split(">") if "<" in i ]
['lol1', '', 'lol2']
'i [i.find(「<」)+ 1:]'可以替換爲'i.lstrip('<')'或'i [1:]'。 '如果i中的「<」可以被刪除,或者替換爲'if i.startswith(「<」)',這樣更有效並且重要。 – 2010-03-10 04:26:22
我知道,但這是一個更復雜的代碼,謝謝。 – Alquimista 2010-03-10 04:33:34
感謝,我學到新的東西 – Alquimista 2010-03-10 04:31:45
@Alquimista,歡迎您! – 2010-03-10 04:46:47