如何在Python中实现无空格限定的正则表达式替换?
解决方案
你需要调整正则表达式,精准匹配**<后无空格、>前无空格**的标签,修改后的代码如下:
import re txt = "<this should be removed> hello < world > </this should also be removed> this should stay" cleanText = re.sub(r'<(?! )[^>]*[^ >]>', ' ', txt) print(repr(cleanText))
运行后输出:
' hello < world > this should stay'
正则规则解释
<(?! ):用负向先行断言,确保<后面紧跟的不是空格,排除<开头的标签[^>]*:匹配任意数量的非>字符,覆盖标签内的内容[^ >]:匹配最后一个非空格、非>的字符,确保>前面没有空格>:匹配标签结尾的>
这样就能只移除符合要求的标签,保留< world >这类不符合规则的内容。
内容的提问来源于stack exchange,提问作者pynoob
相关产品推荐
相关产品推荐

