我的Java應用程序正試圖從一個文件中,修改下面一行:Java的正則表達式替換精確匹配
static int a = 5;
我們的目標是「A」與「mod_a」來代替。
使用簡單string.replace(var_name, "mod" + var_name)
給了我下面的:
stmod_atic int mod_a = 5;
這是相當完全錯誤的。谷歌搜索我發現,你可以預先安排「\ B」,然後var_name必須代表一個字的開頭,但是,string.replace("\\b" + var_name, "mod" + var_name)
絕對沒有:(
(我也用「\ b」而不是「\ b 「)
我很樂意給你的建議Pattern.quote另投,可惜我不能:( – 2012-07-26 10:54:12
記住,正則表達式是不完美的一樣複雜的語義匹配編程語言,例如試圖用'mod_a'代替'a' @ Joachim的正則表達式也會影響標識符的註釋和其他實例。 a_mod {public a_mod(int a_mod){...'。Oops。 – LisMorski 2012-07-26 10:58:17
@LisMorski:非常真實:正則表達式並不能代替真正的重構工具!但是,如果你直觀地掃描結果以達到理智;-) – 2012-07-26 11:01:43