我正在尝试将 String
\something\
转换为 String
\\something\\
使用 replaceAll
,但我不断收到各种错误。我认为这是解决方案:
theString.replaceAll("\\", "\\\\");
但这给出了以下异常(exception):
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
最佳答案
String#replaceAll()
将参数解释为 regular expression . \
是 String
和 regex
中的转义字符。您需要对正则表达式进行双重转义:
string.replaceAll("\\\\", "\\\\\\\\");
但是您不一定需要正则表达式,只是因为您想要一个精确的逐个字符替换并且您不需要这里的模式。所以String#replace()
应该足够了:
string.replace("\\", "\\\\");
更新:根据评论,您似乎想在 JavaScript 上下文中使用该字符串。你最好使用 StringEscapeUtils#escapeEcmaScript()
而是覆盖更多字符。
关于java - String.replaceAll 单反斜杠和双反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1701839/