我正在嘗試匹配:--這是一個文本,它<b>可以包含其他 </b> 標簽--
我將用匹配的模式包裝<u></u>
但我試圖避免<br>只使用標簽。即,如果字串之間有 <br> 則它不應該匹配 -
text.replace(/(?:--)(?:(?!--|\s))((?!<br>).*?)(?:--)/g,'<u>$1</u>')
不幸的是,我的正則運算式匹配
--這是一個文本,<b>可以包含其他</b>標簽,但如果<br>存在則不匹配--
我不希望它匹配,因為 <br> 存在。
uj5u.com熱心網友回復:
請(?!<br>).為一組,然后量化的,而不是量化這一組中,.只有。Aslo,?后面是多余的,*因為?表示0或1,而*表示0或更多,已經覆寫了1。
(?:--)(?:(?!--|\s))((?:(?!<br>).)*)(?:--)
獎勵:如果您使用積極的前瞻和積極的后視 for --,則不需要捕獲組,如果您的環境支持它。此匹配本身將排除--.
(?<=--)(?:(?!--|\s))(?:(?!<br>).)*(?=--)
uj5u.com熱心網友回復:
首先檢查字串是否不包含<br>,然后繼續正則運算式:
if (!/--.*?<br>.*?--/.test(text)) {
text.replace(/(?:--)(?:(?!--|\s))((?!<br>).*?)(?:--)/g,'<u>$1</u>')
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369126.html
標籤:javascript 正则表达式
