我很难构建正则表达式来从HTML文本中抓取一些单词。
假设我有以下内容:
<p style="padding-left :12px">SOME_TEXT_I_WANT</p><p>SOME_OTHER_TEXT</p>
* SOME_TEXT_I_WANT *和* SOME_OTHER_TEXT *可以是一堆单词,如“SERY RANDOM TEXT”或HTML文本,如“<strong>SOME BOLD TEXT</strong>
”
我的目标是用一个正则表达式提取这些文本。
答案 0 :(得分:4)
您打算使用哪种语言?该语言是否存在HTML解析器?如果是,请考虑使用解析器。
但是,如果这是“一次性”,您可以能够通过以下方式实现:
#<p[^>]*>(.*?)</p>#
以上内容有一些限制,最明显的是它与<p data-something="a > b">...</p>
或嵌套<p>
不匹配。 (我无法判断您尝试解析的标记是否实际允许嵌套<p>
s - 只是告知您可能存在的陷阱。)
答案 1 :(得分:0)
假设您使用的是PHP:
$html = "<p>some text here</p>"
preg_replace("/<.+?>/","", $html);
答案 2 :(得分:0)
不要使用正则表达式。如果你问为什么,有一个非常流行的SO post描述了如果你试图使用正则表达式来解析HTML会发生什么。
使用您的语言的HTML或XML解析器,并使用现有功能提取您需要的内容。