我需要转义 ^
、.
、[
、]
、+
和 \
(制表符和换行符不会成为问题),同时保留 *
和 ?
等其他内容。
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/