2011-11-25 48 views
3

假設代替多個字符我有一個​​這樣的字符串:正則表達式來與一個

"abc%\%%%%" 

我想只有一個%來替代多個%%%。我想是這樣

String st = "abc%\%%%%".replaceAll("(%)\\1+", "$1");

但是,這也會將"\%%""\%",這不是我想要的。換句話說,我想替換多個%,但是不要使用反斜槓。

我應該使用哪種正則表達式? 感謝

回答

2

嘗試,

String st = "abc%\\%%%%".replaceAll("([%])+","$1"); 
     st = "Not%%%%\\%%%%sure but%%%\\%%%%%try out".replaceAll("(\\\\)([%])+","$1$2"); 
+0

我做了,但沒有奏效。 :( – user113454

0

試試這個

String st = "abc%\\%%%%"; 
String regex = "([\\\\]%)%+"; 
String result= st.replaceAll(regex,"\\\\%%"); 

結果是ABC%\ %%

如果您要檢查的正確性,您可以使用此語句

String result= st.replaceAll(regex,"\\\\%R"); 

結果是abc%\%R(這證實%前面加了間隙%。)