我正在尝试将转换String \something\为String \\something\\using replaceAll,但是我不断遇到各种错误。我认为这是解决方案:
String \something\
String \\something\\using replaceAll
theString.replaceAll("\\", "\\\\");
但这给出了以下异常:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
将该String#replaceAll()参数解释为正则表达式。该\是转义字符都 String和regex。你需要对正则表达式进行两次转义:
String#replaceAll()
\
String
regex
string.replaceAll("\\\\", "\\\\\\\\");
但是你不必为此使用正则表达式,仅是因为你希望逐个字符地进行精确替换,并且这里不需要模式。因此String#replace()就足够了:
String#replace()
string.replace("\\", "\\\\");
更新:根据注释,你似乎想在JavaScript上下文中使用字符串。你最好使用它StringEscapeUtils#escapeEcmaScript()来覆盖更多字符。
StringEscapeUtils#escapeEcmaScript()