[英]Regular Expressions - Match Character Not Between Two Strings
我讀過很多問題,詢問如何找到一個正則表達式來匹配兩個字符串之間的字符,但我的問題是相反的。 我試圖創建將兩個字符串之間不匹配的字符的表達式。
考慮以下字符串。
This is short & [tag]fun & interesting[/tag].
我想更換任何符號字符不與符號標記元素中@。 結果應如下所示。
This is short @ [tag]fun & interesting[/tag].
我嘗試了以下正則表達式,但不幸的是,它與標記元素內的與號匹配。
/(?<!\[tag\])&(?!\[\/tag\])/g
我知道它與該&符號匹配,因為它被字符串兩側的字符包圍。 但是我不能添加隨機數量的字符來檢查,因為lookbehind 和lookahead 必須是固定長度的。
有沒有一個正則表達式可以在這里完成我想要的?
即使使用嵌套標簽,這也能完成工作:
\\[(\\w+)\\].+?\\[/\\1\\](*SKIP)(*FAIL)|&
@
這個怎么運作:
\\[(\\w+)\\].+?\\[/\\1\\]
正在嘗試將開始和結束標記與內部的一些數據匹配(*SKIP)(*FAIL)
如果找到標簽,則丟棄它|
別的&
匹配一個&符號。 此時,我們確定它不在標簽內。不幸的是,這不適用於 Java,但此要求僅在我回答后才添加。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.