gpt4 book ai didi

regex - 使用正则表达式解析HTML : why not?

转载 作者:行者123 更新时间:2023-12-03 04:10:17 24 4
gpt4 key购买 nike

似乎 stackoverflow 上提问者使用正则表达式从 HTML 中获取一些信息的每个问题都不可避免地会得到一个“答案”,即不要使用正则表达式来解析 HTML。

为什么不呢?我知道有一些引用-取消引用的“真正的”HTML 解析器,例如 Beautiful Soup ,而且我确信它们功能强大且有用,但如果您只是做一些简单、快速或肮脏的事情,那么当几个正则表达式语句就可以正常工作时,为什么还要费心使用如此复杂的东西呢?

此外,是否有一些我不理解的关于正则表达式的基本知识使得它们成为一般解析的糟糕选择?

最佳答案

使用正则表达式无法进行整个 HTML 解析,因为它依赖于匹配开始和结束标记,而这对于正则表达式来说是不可能的。

正则表达式只能匹配 regular languages但 HTML 是 context-free language并且不是常规语言(正如@StefanPochmann指出的,常规语言也是上下文无关的,因此上下文无关并不一定意味着不常规)。在 HTML 上使用正则表达式唯一能做的就是启发式,但这并不适用于所有条件。应该可以呈现一个任何正则表达式都会错误匹配的 HTML 文件。

关于regex - 使用正则表达式解析HTML : why not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com