java - 如何转义java中的某些字符

标签 java regex escaping

我需要转义 ^.[]+\(制表符和换行符不会成为问题),同时保留 *? 等其他内容。

EDIT = 更具体地说,我有一个包含这些字符的字符串,我需要对它们进行转义,这样它们就不会被正则表达式匹配。我需要为这些字符中的每一个添加 \ 前缀,但单独这样做需要 7 或 8 次扫描,我想在一次通过中完成(即:匹配的任何内容都以 \)

我该怎么做?

谢谢。

最佳答案

这行得通吗?

StringBuilder sb = new StringBuilder();
for (char c : myString.toCharArray())
{
    switch(c)
    {
        case '[':
        case ']':
        case '.':
        case '^':
        case '+':
        case '\\':
            sb.append('\\');
            // intended fall-through
        default:
            sb.append(c);
    }
}
String escaped = sb.toString();

关于java - 如何转义java中的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772317/

相关文章:

java - 需要 Java regEx 来读取字符串中的数字

javascript - 换行特定的文本模式

java - Apache Tomcat 8 : Getting Error while creating new Server

java - "java.lang.OutOfMemoryError: Java heap space"读取巨大的 zip 文件时

c# - 使用 .NET 正则表达式匹配前面没有单词的特定字符串和任意数量的空格

printing - 用于以页面模式打印图像数据的 ESC-POS 代码

ruby-on-rails - 如何在 Rails 中对字符串进行 URL 转义?

java - 在文本区域中转义 XML 标签

java - Spring security AntMatcher 不工作

java - Struts2:如何告诉我的 index.jsp 转发到 struts2 操作?