前置字符集

Tom*_*ker 2 java regex

我需要在一组中所有出现的字符前加一个反弹,比如'"\在给定的字符串中.

例如,给定字符串

He said "I don't know."
Run Code Online (Sandbox Code Playgroud)

它应该被替换为

He said \"I don\'t know.\"
Run Code Online (Sandbox Code Playgroud)

我如何用Java做到这一点?

Mar*_*ers 6

试试这个正则表达式:

["'\\]
Run Code Online (Sandbox Code Playgroud)

为了在Java字符串文字中使用它,需要对双引号和两个反斜杠进行转义.

替换字符串应该是这样的:

\\$0
Run Code Online (Sandbox Code Playgroud)

$0是对比赛的参考.需要转义反斜杠,否则$变为字面值.同样,反斜杠需要在Java字符串文字中进行转义.生成的代码如下所示:

s = s.replaceAll("[\"'\\\\]", "\\\\$0");
Run Code Online (Sandbox Code Playgroud)

在线查看:ideone