我有一個字符串中的java變量的名稱。我想用字母x代替它。我怎樣才能做到這一點,並確保字符串中的其他單詞不被替換?java正則表達式匹配變量
例如,說我的變量是res
,我的字符串爲「res = res + pres + resd + _res
我希望字符串成爲x = x + pres + resd + _res
我有一個字符串中的java變量的名稱。我想用字母x代替它。我怎樣才能做到這一點,並確保字符串中的其他單詞不被替換?java正則表達式匹配變量
例如,說我的變量是res
,我的字符串爲「res = res + pres + resd + _res
我希望字符串成爲x = x + pres + resd + _res
您可以用一個字邊界只捕獲全字:。
String s = "res = res + pres + resd + _res";
String var = "res";
System.out.println(s.replaceAll("\\b" + var + "\\b", "x"));
輸出x = x + pres + resd + _res
您可以使用\b
元字符來匹配單詞邊界(請記住,您需要使用雙向反斜槓來轉義此。在Java中)
所以,你可以這樣做以下:
final String searchVar = "res";
final String replacement = "x";
final String in = "res = res + pres + resd + _res";
final String result = in.replaceAll("\\b" + searchVar + "\\b", replacement);
System.out.println(result);
// prints "x = x + pres + resd + _res"
我真的想任何一個正確的方式來創建一個變量(如允許由被考慮到語言本身)。我在原始文章中添加了_res以反映此示例。 「res = res + pres」也應該工作,即使沒有空格 – Car981
@ Car981我建議的代碼也可以用'_res'或'res = res + pres'工作。 – assylias
好吧,它是否也可以使用美元符號,數字以及這裏給出的基本任何內容:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html#naming? – Car981