簡體   English   中英

Java正則表達式字符串替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM