2015-05-29 29 views
2

我無法用正則表達式的反向引用替換字符串: 沒有被替換,我總是以我的輸入結束。
我的代碼:帶反向引用的簡單java正則表達式不起作用

String input="A12.3 bla bla my input"; 
input = StringUtils.replacePattern(
      input, "^([A-Z]\\d{2}\\.\\d)", 
      "$1"); 
System.out.println(input); 

的主要問題是,我不能改變Java代碼,但只有輸入,正則表達式和組參考。

對於任何符合我的需求或出現問題的其他正則表達式模式,您有什麼建議嗎?


StringUtils的就是Apache Commons Lang中

+0

你只是想用「A12.3」部分替換輸入嗎?如果是這樣,爲什麼不只是子串或修剪? –

回答

2

您正在用自身替換相同匹配的模式。可能你的意思是:

String input="A12.3 bla bla my input"; 
input = StringUtils.replacePattern(
      input, "^([A-Z]\\d{2}\\.\\d).*$", "$1"); 
//          ^^^ 
System.out.println(input); 

.*$將匹配輸入直到結束。