[英]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 ,你必須迭代它來做任何你想做的事情。 您可以再次對其進行迭代以獲取所有子節點或僅獲取其文本。 遍歷結果集並提取數據應該是遞歸的,但我只是創建了一個簡單的示例來了解這個想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.