假设有以下文字,
dogs are very nice <a href="http://dogs.com">read about nice dogs here</a>
我需要更改所有不在尖括号中的内容,因此文本将为
cats are very nice <a href="http://dogs.com">read about nice cats here</a>
我发现正则表达式\([^)]*\)
在这里可以派上用场,但看起来不起作用:
s = 'dogs are very nice <a href="http://dogs.com">read about nice dogs here</a>'
s = re.sub(r'\([^)]*\)', 'cats', s)
print(s)
'dogs are very nice <a href="http://dogs.com">read about nice dogs here</a>'
很抱歉,这个问题看起来很la脚,但是我对regex真的很陌生。感谢您的帮助。
答案 0 :(得分:1)
此正则表达式模式似乎与您想要的没有任何关系-甚至没有提及“狗”,更不用说尖括号了。具体来说,它是匹配圆括号内的任何文本(例如(abc)
)。
更一般而言,我认为您不能在此处使用正则表达式。
如果HTML不包含任何其他尖括号(相当大的假设),则(<[^<>]*>[^<>]*)*dogs
可能会成功,SPRING_CONFIG_ADDITIONAL-LOCATION
应该与“ dogs”匹配,只有在其前面的每个“ <”最后都跟一个“>”。
但是,认真的说,只需安装“ Beautiful Soup”之类的内容并解析HTML;既简单又强大。