簡體   English   中英

正則表達式到 select 前 n 個單詞和 HTML 標簽周圍

[英]Regexp to select first n words and HTML tags around them

我知道給定字符串中的 select 僅字或 select 僅 HTML 標記是可能的。 但是是否可以同時使用 select ?

在此示例中,假設我們想要 select前 5 個單詞和 HTML 標記圍繞它們:

輸入:

<p><strong>This is</strong> <span style="font-size: 1em;">test</span> <strong><em>five</em></strong> words.</p> 
test <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>

預期 Output:

<p><strong>This is</strong> <span style="font-size: 1em;">test</span> <strong><em>five</em></strong> words.</p>

編寫正則表達式以匹配所有單詞或匹配所有 HTML 標記很簡單,但不確定如何僅使用正則表達式來實現上述結果。

我知道它不是正則表達式,但它是純 javascript 並且在使用文檔中的“選擇節點”時主要是首選方法:XPath。

使用這塊 XPath 您將 select 包含文本“這是測試”的最大節點:

document.evaluate("/html/body//*[contains(.,'This is test')]", document);

在您的示例中,第一個<p>將被選中,包括其子標簽。

上面的 function 返回一個XPathResult ,你必須迭代它來做任何你想做的事情。 您可以再次對其進行迭代以獲取所有子節點或僅獲取其文本。 遍歷結果集並提取數據應該是遞歸的,但我只是創建了一個簡單的示例來了解這個想法。

一個例子 jsFiddle

暫無
暫無

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

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