我输入如下:
Input: 6jVYY3Xnqt<>:"/\|?*GjznpnRQSb
testInput = testInput.replaceAll("[<>:/\\\"|?*]", "-");
output: 6jVYY3Xnqt----\---GjznpnRQSb
但是如果我这样做:
testInput = testInput.replaceAll("[<>:/\"|?*]", "-");
testInput = testInput.replace("\\", "-");
output: 6jVYY3Xnqt--------GjznpnRQSb
这是Java 7中的错误吗?为什么
replaceAll
不使用\
字符? 最佳答案
您需要对正则表达式中的反斜杠加倍转义,一次是字符串文字,一次是正则表达式:
testInput= testInput.replaceAll("[<>:/\\\\\"|?*]", "-");
// ^^^^
// Represents one backslash
关于java - Java中replaceAll方法的特殊问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27286030/