2011-11-25 46 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(这证实%前面加了间隙%。)