我想要找到空标签,这里是一个例子如何正则表达式在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