【发布时间】:2011-02-17 20:19:16
【问题描述】:
我想使用 perl reg ex one liner 来匹配段落标签的内容。段落是这样的:
<p style="font-family: Calibri,Helvetica,serif;">Text I want to extract</p>
所以我一直在使用这样的东西:
perl -nle 'm/<p>($.)<\/p>/ig; print $1' file.html
任何想法表示赞赏
谢谢
【问题讨论】:
-
为什么是正则表达式?这通常不太适合 HTML 解析。
perl -MHTML::TreeBuilder -e'print HTML::TreeBuilder->new_from_file("filename.html")->find("p")->as_text' -
@David:我在程序中经常使用 HTML::TreeBuilder,但我承认我从来没有想过在单行中使用它!
-
这非常有效...知道如何传递 *.html 而不是 filename.html 吗?我想从目录中的文件中获取所有段落。
-
打印地图 {HTML::TreeBuilder->new_from_file($_)->find("p")->as_text} grep {/.*\.html} File::Util->list_dir ('/一些/目录');还是类似的?
标签: html perl tags expression