java - 将转义的转义序列替换为其未转义的值

标签 java regex

作为输入,我得到字符串 "some text\\nsome text" -> 显示为 "some text\nsome text"。 如何删除一个反斜杠并得到 "some text\nsome text" -> 显示为

"some text
some text"

这也适用于其他特殊字符,如 "\t"? 使用 regex 可以只做 like textLine.replace("\\n", "\n") 等。

还有别的办法吗?

最佳答案

您不需要重新发明轮子。您可以使用 org.apache.commons.lang3.StringEscapeUtils用于转义 Java 字符串。取消转义在字符串中找到的任何 Java 文字。例如,它将把一系列 '\' 和 'n' 变成换行符,除非 '\' 前面有另一个“\”。在这种情况下,您需要再转义一次。

代码:

import static org.apache.commons.lang3.StringEscapeUtils.unescapeJava;

public class Unescape {
    public static void main(String[] args) {
        System.out.println("some text\\nsome text");
        System.out.println(unescapeJava("some text\\nsome text"));
    }
}

输出:

some text\nsome text
some text
some text

关于java - 将转义的转义序列替换为其未转义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350584/

相关文章:

java流groupBy收集器用于空键并在分组值列表上应用收集器

java - 如何在gradle中创建文件集合的集合?

java - 我如何验证它,以便下面的前 3 位数字范围为 100-300(含),后 3 位数字范围为 001-999(含)

java - Netty:为什么不同的数据包在服务器中作为请求连接在一起?

regex - 如果遇到其他多个节标题中的任何一个,如何退出Sed中的节模式匹配?

java - 无法检索作业,因为未找到所需的类,即使之前的触发器已成功触发

javascript - 格式化小写字符串以将每个句子的开头大写

JavaScript 替换除最后一个以外的所有内容,同时保留原始换行符

javascript - 前 n 个匹配项的正则表达式

javascript - 只选择所有小写字符的单词javascript