python - 需要帮助解密正则表达式 re.sub

标签 python regex

我对正则表达式绝望了,想知道是否有人可以帮我用简单的英语解释一下这段 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/

相关文章:

python - 如何在 Python 中删除文件或文件夹?

python - 如何搜索值是否在数据框中

python - 想要在匹配的字符串中添加遗漏的字符串

regex - 匹配 URL 的路径,减去文件扩展名

regex - 在 NLTK 中分块冒号

java - java中搜索重复单词的正则表达式

regex - emacs replace-regexp 的语法

python - 如何使用 Python 将 Excel 图表粘贴到 PowerPoint 占位符中?

python - `setup.py sdist` 是如何工作的?

regex - 字符串提取 : Understanding weird output