[英]Java regex string replace
我試圖寫正則表達式來替換字符串。
有字符串示例:
I am student.
I <a href="am.html">am</a> student.
我想編寫正則表達式,將其用<a>
html標記替換“ am”,並獲得第二個字符串作為替換第一個字符串的結果。
問題是嵌套在引號和標記內的文本。
例如,如果在此示例中嘗試替換字符串“ am”:
I <a href="am.html">am</a> am student.
結果應為:
I <a href="am.html">am</a> <a href="am.html">am</a> student.
提前致謝!
如果是這樣的簡單情況,則可以使用簡單的環顧四周方法來確保所匹配的事物沒有被>
和<
包圍,但是它周圍有單詞邊界( \\b
):
(?<!>)\bam\b(?!<)
下面的正則表達式匹配的只有am
的空白包圍。
str.replaceAll("(?<=\\s)am(?=\\s)","<a href=\"am.html\">am</a>")
我可以看到已經發布了與正則表達式字符串相關的一些答案,因此無需發布其他正則表達式字符串。 但是對於這種簡單的情況,像替換String這樣簡單的事情呢? 還是真正的問題比這更復雜? 對於這種情況,我的解決方案是:
s.replaceAll(" am ", " <a href=\"am.html\">am</a> ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.