java正则表达式对某些特殊符号做了预定义,当要正则匹配这些特殊符号时,就需要转义。
示例:匹配美元符号与尖括号保卫的字符($
String regex = "\\u0024<([A-Z_a-z0-9]+>)";
附:特殊符号转义字符
点的转义:. ==> \\u002E
美元符号的转义:$ ==> \\u0024
乘方符号的转义:^ ==> \\u005E
左大括号的转义:{ ==> \\u007B
左方括号的转义:[ ==> \\u005B
左圆括号的转义:( ==> \\u0028
竖线的转义:| ==> \\u007C
右圆括号的转义:) ==> \\u0029
星号的转义:* ==> \\u002A
加号的转义:+ ==> \\u002B
问号的转义:? ==> \\u003F
反斜杠的转义:\ ==> \\u005C
附:Java中应该注意的一些特殊字符,转自https://my.oschina.net/u/658658/blog/410745
转义时可以采用两种方式:
1. 正则表达式中表述上述字符,需要在前面加上“\”,但是“\”是 Java 中的特殊字符,在 Java 代码中用“\\”表示正则表达式中的“\”。
2. 在需要保留本身意义的前后加上 \Q 和 \E,把特殊字符放在这里面就成普通字符了。
PS:若想表示一个“\”,在 Java 代码中需要使用“\\\\” :)
String unitName = "11年真题分析(一)";
unitName = unitName.replaceAll("\\Q(\\E", "(");
System.out.println(unitName);
结果为:
11年真题分析(一)