簡體   English   中英

使用哪個正則表達式從HTML文本中提取某些單詞?

[英]Which regular expression to use to extract some words from an HTML text?

我很難構建一個正則表達式來從HTML文本中獲取一些單詞。

假設我有以下內容:

<p style="padding-left :12px">SOME_TEXT_I_WANT</p><p>SOME_OTHER_TEXT</p>

* SOME_TEXT_I_WANT *和* SOME_OTHER_TEXT *可以是一堆單詞,如“SOME RANDOM TEXT”或HTML文本,如“ <strong>SOME BOLD TEXT</strong>

我的目標是用一個正則表達式提取這些文本。

你打算用哪種語言? 該語言是否存在HTML解析器? 如果是,請考慮使用解析器

但是,如果這是“一次性”,您可以通過以下方式獲得:

#<p[^>]*>(.*?)</p>#

上面有一些限制,最值得注意的是它與<p data-something="a > b">...</p>或嵌套<p>不匹配。 (我無法判斷您嘗試解析的標記是否實際上允許嵌套<p> s - 只是告知您可能存在的陷阱。)

假設您使用的是PHP:

$html = "<p>some text here</p>"
preg_replace("/<.+?>/","", $html);

不要使用正則表達式。 如果你問為什么,有一個非常受歡迎的SO帖子描述了如果你試圖使用正則表達式來解析HTML會發生什么。

使用您的語言的HTML或XML解析器,並使用現有功能提取您需要的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM