使用java替换字符串中的\ u和\ u

时间:2015-05-06 07:53:56

标签: java regex

我想在网址中替换\ u。

C:\测试\冰\ utest \ university.txt

当我使用url=url.replaceAll("\\u", "\\\\u");我收到以下错误我可能知道如何用\ u替换\ u或者转义\ u

java.util.regex.PatternSyntaxException: Illegal Unicode escape sequence near index 2
\u

3 个答案:

答案 0 :(得分:3)

您必须像这样使用它:url=url.replaceAll("\\\\u", "\\\\\\\\u");replaceAll()的第一个参数是regex,第二个参数是string

为什么呢? :

如果您查看从matcher.appendReplacement()调用的replaceAll()代码,您可以:

 while (cursor < replacement.length()) {
            char nextChar = replacement.charAt(cursor);
            if (nextChar == '\\') {

因此,必须考虑每个\,这会在代码中导致4 * 2 = 8 \ s

答案 1 :(得分:3)

你实际上可以放弃正则表达式并使用非正则表达式方法String#replace

String repl = "C:\\testing\\bing\\utest\\university.txt".replace("\\u", "\\\\u");
//=> C:\testing\bing\\utest\\university.txt

答案 2 :(得分:0)

url.replaceAll("\\\\u", "\\\\\\\\u")

将产生:

C:\testing\bing\\utest\\university.txt