簡體   English   中英

Regexp - 搜索不包含整個單詞的文本

[英]Regexp - search for text which doesn't contain whole word

我有類似這樣的文字:

<html><p>this is <b>the</b> text</p> and <p>this is another text</p></html>

我需要使用regexp獲取此文本

this is <b>the</b> text

問題是,當我使用這樣的簡單正則表達式( <html>.*</p> )時,我會得到全文,直到最后一次出現</p>

誰能幫我?

謝謝lennyd

你需要一個非貪婪的比賽:

<html>.*?</p>

此外,您可能需要考慮為此任務使用HTML解析器而不是正則表達式。

默認情況下,正則表達式量詞是貪婪的,即您獲得最大長度的匹配。 您必須使用。*指定您想要“非貪婪”的匹配?

要捕獲para標簽之間的數據,你可以使用regexp和正面/<p>(.*)(?=<\\/p>)/斷言/ < /<p>(.*)(?=<\\/p>)/ ( .*? /<p>(.*)(?=<\\/p>)/ ,這比那時更貪婪.*? 並且工作速度較慢,但​​可能對您有所幫助。 還要確保您的HTML有效,這意味着:

  1. 所有para標簽都已關閉。 HTML瀏覽器在進入另一個塊時關閉para標簽。
  2. Para標簽不嵌套:)否則你有任何正則表達式的問題。

愚蠢的問題,仍然使用純正則表達式,為什么不剝離任何<..>內部段落? 然后用[^<]類的東西抓住這些短語

暫無
暫無

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

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