之前见过不止一个人,比如:
之前某人写sina搬家到wordpress,也是全部用的是正则表达式实现的 -> 如果其遇到足够复杂的html代码,估计就会发现,正则基本上就没法使用了
尝试使用正则表达式去处理,带很多各种标签,如div等,的html代码。
对此,个人建议是:
1.如果是非常简单的,很小一段的html代码,并且html本身是比较正常的(没有缺失的标签等),则的确是使用正则表达式处理起来,更加方便,更加省事。
2.如果是复杂的html代码,尤其是,有些html代码本身写的就很烂,标签不完整,则最好是采用对应的,专门用于解析html代码的库,去处理,去解析,然后会更加方便你,从解析后的值(对象)中,提取你所需要的值。
而否则,对于这种复杂的html代码,如果你自己去写一堆正则表达式的话,你会发现,很多时候,根本没有写出实际可以使用的正则表达式,因为html代码里面,N多层嵌套的,各种的标签,很难用单个的,甚至多个的,正则表达式,去匹配出来,去提取出来你想要的值。
以及,当你遇到大量的html中,其中个别的html代码,和其他的规则都又不太一样,设置是代码本身不合法,缺少部分的标签等等,此时,你就会发现,你之前所写的,即便是足够复杂,足够精确的正则表达式,也都失去了意义,没法匹配到你想要的值。
所以,才建议:对于复杂的html,使用相关语言中,特定的专门用于解析html的库,去处理,会比你从头写出极其复杂,但有时候却无法准确匹配内容的正则表达式,要来的更加高效,更加省事,更加准确。
比如:
- Python语言中的,有很多第三方库,专门用于解析html。
- 个人觉得比较好的是BeautifulSoup:
- C#语言中,也有第三方的库
- 【记录】C#中的HTML解析 中的:SGML
- 和:
- 关于这些库都是如何使用的,可参考:
关于实际例子:
【问题解答】建议:处理html时复杂的需求,建议使用专门的库比如BeautifulSoup去处理而不要用正则
转载请注明:在路上 » 【整理】关于用正则表达式处理html代码方面的建议