假设我有一个这样的字符串:
"abc%\%%%%"
我想用一个%%%
替换多个%
。我试过像
String st = "abc%\%%%%".replaceAll("(%)\\1+", "$1");
但这也会将"\%%"
变成"\%"
,这不是我想要的。换句话说,我想要替换多个%,但留下前面带有反斜杠的那些。
我应该使用什么样的正则表达式? 感谢
答案 0 :(得分:2)
尝试,
String st = "abc%\\%%%%".replaceAll("([%])+","$1");
st = "Not%%%%\\%%%%sure but%%%\\%%%%%try out".replaceAll("(\\\\)([%])+","$1$2");
答案 1 :(得分:0)
试试这个
String st = "abc%\\%%%%";
String regex = "([\\\\]%)%+";
String result= st.replaceAll(regex,"\\\\%%");
结果是abc%\ %%
如果要检查正确性,可以使用此声明
String result= st.replaceAll(regex,"\\\\%R");
结果是abc%\%R(这证实了前面有反冲的%是单独的。)