如何解决使用正则表达式解析 HTML:为什么不呢?
正则表达式无法进行整个 HTML 解析,因为它依赖于匹配开始和结束标记,而这在正则表达式中是不可能的。
正则表达式只能匹配正则语言,但 HTML 是上下文无关语言而 不是 正则语言(正如@StefanPochmann 指出的,正则语言也是上下文无关的,因此上下文无关并不一定意味着不是正则语言)。在 HTML 上使用正则表达式唯一可以做的就是启发式方法,但这并不适用于所有条件。应该有可能呈现一个将被任何正则表达式错误匹配的 HTML 文件。
解决方法
似乎在stackoverflow上,提问者使用正则表达式从HTML中获取一些信息的每个问题都不可避免地会有一个“答案”,即不使用正则表达式来解析HTML。
为什么不?我知道那里有quote-unquote“真正的”HTML解析器,例如Beautiful
Soup,我相信它们功能强大且有用,但是如果您只是做一些简单,快速或肮脏的事情,那么为什么当一些正则表达式就可以正常工作时,还要麻烦使用如此复杂的东西吗?
此外,对于正则表达式,是否有一些我不了解的基本知识使它们成为一般解析的糟糕选择?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。