Java转义转义序列

标签 java regex escaping

我想转义字符串中的转义序列。

示例:如果我有一个内容为“\n\u0073”的字符串,我需要以这样一种方式转义它们,如果我将它打印到命令行,我会看到

this:
\n\u0073
instead of:

s

我还将转义双引号 (") 和反斜杠 (\),并且我想出了一个表达式来转义它们:

Pattern p = Pattern.compile("([\"\\\\])");
String str = p.matcher("\"\n\u0073\\"").replaceAll("\\\\$1");

这产生了我:

\"
s\\

不过,它不处理转义序列。我想要的是:

\"\n\u0073\\

我需要进行哪些修改才能转义转义序列?

最佳答案

您可以使用 StringEscapeUtils .上面有方法escapeJava()。不幸的是,imo,没有办法转义像 \u0073 这样的 unicode 文字,所以对于您的示例输入 "\"\n\u0073\""StringEscapeUtils。 escapeJava("\"\n\u0073\"") 将返回 \"\ns\"

关于Java转义转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830765/

相关文章:

python - 从字符串中删除 r n r n

ruby - 删除非字母数字字符而不删除 ruby 中的国际字符

java - (已修复)如何在动态数组(文件、流、缓冲区)上查找一个字符串值?

java ->>> 使用继承的 Hibernate 示例 <<<

java - 在没有反射 API 的情况下通过存储在字符串中的名称调用方法?

batch-file - 检查字符串是否被引用并向字符串添加引号的问题

javascript - 在将用户输入添加到 Javascript 中的 DOM 之前清理用户输入

java - 如何在 Java 中使用 JSlider 设置标签匹配主要刻度

Javascript - 创建正则表达式字符类

c# - 如何分隔字符串中的段落?