我正在嘗試下面的代碼:String txt = "D D#";
String txt2 = txt.replaceAll("\\bD\\b", "x").replaceAll("\\bD#\\b", "y");我正在等待 get "x y",但它返回了"x x#"。有什么解決辦法?
1 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
根據您編輯的問題,您想用單詞邊界進行替換。
您可以使用此代碼來修復:
String txt = "D D#";
String txt2 = txt.replaceAll("\\bD#", "y").replaceAll("\\bD\\b", "x");
//=> "x y"
注意變化:
在用with替換所有單詞的.replaceAll("\\bD#", "y")other 之前調用。replaceAllDx
\\b由于#在非單詞字符之后不匹配單詞邊界,因此不使用單詞邊界。\b被斷言的(^\w|\w$|\W\w|\w\W)位置。
另請注意,您還可以使用replaceFirst代替replaceAll并將代碼保留為:
String txt2 = txt.replaceFirst("\\bD\\b", "x").replaceFirst("\\bD#", "y");
添加回答
舉報
0/150
提交
取消