java - String.replaceAll 单反斜杠和双反斜杠

标签 java escaping backslash replaceall

我正在尝试将 String \something\ 转换为 String \\something\\使用 replaceAll,但我不断收到各种错误。我认为这是解决方案:

theString.replaceAll("\\", "\\\\");

但这给出了以下异常(exception):

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1

最佳答案

String#replaceAll()将参数解释为 regular expression . \ Stringregex 中的转义字符。您需要对正则表达式进行双重转义:

string.replaceAll("\\\\", "\\\\\\\\");

但是您不一定需要正则表达式,只是因为您想要一个精确的逐个字符替换并且您不需要这里的模式。所以String#replace()应该足够了:

string.replace("\\", "\\\\");

更新:根据评论,您似乎想在 JavaScript 上下文中使用该字符串。你最好使用 StringEscapeUtils#escapeEcmaScript()而是覆盖更多字符。

关于java - String.replaceAll 单反斜杠和双反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1701839/

相关文章:

java - 如何在Java中调用具有数组类型的构造函数

java - 我想在jsp中每页显示数据库10个结果

java - 在 CancelAll 之后删除队列中剩余的请求

javascript - AngularJS - 呈现包含在字符串中的 HTML 标签

python - 显示字符串中的不可打印字符

python - Python 中 Windows 路径中的双反斜杠错误

c# - 不能将超链接写成字符串

matlab - 左矩阵除以向量

java - 在配置文件中指定 jvm 选项

php - 字符串中的隐藏字符破坏 SQL 语句(php、mysql)