[英]Find and replace all occurrences of a string inside an HTML tag in one pass
我需要一個正則表達式來搜索和替換文本的定界部分內多次出現的文本字符串。
假設存在具有某個類的一個或多個span的HTML代碼。 每個跨度在其中可能不包含,不出現一次或多次出現字符串{abc}
,例如
<p>lorem ipsum dolor <span class="xyz">sid amet{abc}et pluribus {abc} unum{abc} diex
et mon droit</span> you'll never walk alone</p>
因此,我需要一個正則表達式對,以單遍將 {def}
<span id="xyz">
所有出現的{abc}
替換為{def}
。
這用於文本編輯器(例如Notepad ++等)中,並且必須是PCRE / UNIX樣式的正則表達式。
我所擁有的是
查找: (<span class="xyz">)([^<]*)\\{abc\\}([^<]*<)
替換: \\1\\2{def}\\3
這確實適用於跨度中的一次出現,但是如果出現更多次,我必須循環運行多次替換,而我需要一次通過 。
我不知道該如何實現。 我想這是一個很普通的情況,以某種方式,我找不到與需要一次性通過,沒有周期,沒有代碼的類似事情,並且我想知道如何在原則上做到這一點。
這似乎在記事本++中工作
查找什么: (?:<span class="xyz">|\\G)[^<]*?\\K\\{abc\\}(?=[^<]*<\\/span>)
替換為: {def}
搜索方式:正則表達式
請注意,由於[^<]*
因此假設span標簽內沒有其他標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.