Android 如何将\添加到特殊字符之前

Android 如何将\添加到特殊字符之前,android,regex,Android,Regex,我试图向服务器发送一个字符串,需要在一个特殊字符之前添加\项(例如:将“test”替换为“test\”)。我写道: public static String handleSpecialChars(String str){ if (str!=null){ Log.d("Common handleSpecialChars",str); str = str.replaceAll("[\\p{Punct}]", "\\$1"); } return str; } 但是我得到了

我试图向服务器发送一个字符串,需要在一个特殊字符之前添加\项(例如:将“test”替换为“test\”)。我写道:

public static String handleSpecialChars(String str){
if (str!=null){
    Log.d("Common handleSpecialChars",str);
    str = str.replaceAll("[\\p{Punct}]", "\\$1");
   }
   return str;
}
但是我得到了“test$1”(可能是因为\指的是$)。所以我也写了:

str = str.replaceAll("[\\p{Punct}]", "\\\\$1");
但我得到了“java.lang.ArrayIndexOutOfBoundsException”。
我做错了什么?

你的正则表达式没有多大意义,它应该做什么?但对于你的问题,因为你的正则表达式中没有匹配的组,$1表示什么都没有$0将引用匹配的字符串(或0,不知道在java中),通常使用括号<代码>(< /代码>代码> > /Cord>在ReGeXEnter中捕获,考虑使用HuffLeXixILARCARS(String in)并在Outin=in .RePoTALL(…))中创建一个本地字符串。您是正确的- Loamhoof我需要使用0美元而不是1美元。我使用了很多Perl,在这种语言中,我使用$1作为第一项。