我对正则表达式绝望了,想知道是否有人可以帮我用简单的英语解释一下这段 python 正则表达式在做什么?
text = re.sub(r'<[^>]*?>',' ',strHTML)
我知道任何匹配项都将被“”替换,但我不知道正则表达式的匹配内容。 正如我所看到的,它匹配“<”的所有实例,通过“[^>]”忽略“>”的所有实例,但我不知道你为什么要这样做,因为它不应该与其他任何东西匹配反正。 我发现 '*?>' 与任何带有 '>' 的文本 block 匹配,例如 'p>'
有人可以帮我解决一下明确的故障吗?
最佳答案
看起来它删除了所有标签:<[^>]*?>
-
<
- 匹配<
字符 -
[^>]*?
-
*?
- 重复前面的 block 0次或多次(事实上?
在这里是多余的,因为它不可能匹配超过最小数量的字符) -
[^>]
- 匹配任何非>
字符
-
-
>
- 匹配>
字符
简而言之,想法是找到标签的开头,然后找到不是标签结尾的所有(如果有)字符。然后找到标签的末尾。
还有可以自动生成文字描述的服务 http://xenon.stanford.edu/~xusch/regexp/
关于python - 需要帮助解密正则表达式 re.sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096626/