使用正则表达式否定

时间:2014-10-23 18:08:28

标签: regex python-2.7

我有一个字符串:

"<ANY>
some    STUFF   here
Obary   SEES    Obary
</ANY>
<SOME>
..."

现在我要删除&lt;&gt;之间的东西和&lt;&gt;得到:

"
some    STUFF   here
Obary   SEES    Obary
..."

我尝试了什么:

new = []
for m in re.finditer("!<[A-Z]*>|!<\/[A-Z]*>|[A-Z][a-z]+|[a-z]+", my_text):
            new.append((m.group(0)))

好吧,现在我输了#34; STUFF&#34;和&#34; SEES&#34;。如何在不丢失其他内容的情况下摆脱所有"<ASDF>"

2 个答案:

答案 0 :(得分:2)

一个非常简单的表达式,如<[^>]*>re.sub()可以解决这个问题:

my_text = re.sub(r"<[^>]*>", "", my_text)

# 
# some    STUFF   here
# Obary   SEES    Obary
# 
# 
# ...

Demo

答案 1 :(得分:1)

没有正则表达式的另一种选择(假设我们在这里查看整行):

my_text = '\n'.join([line for line in my_text if "<" not in line])