java正则表达式(六)
六、字符转义
如果你想查找元字符本身,比如你查找“.”,“*”,就会出现问题,因为你没办法指定它们,它们会被解释成正则表达式。
这时,我们就要用\来取消这些字符的特殊意义,让正则表达式进行匹配时,将它们翻译为普通的字符串。
因此,我们应该使用\.,\*,当然要查找\本身,必须使用\\。
比如:unibetter\.com匹配unibetter.com,C:\\Windows匹配C:\Windows。
注:正则表达式会在你提供的字符串中翻译\。另外在字面量的String中,java编译器要求各个\需要有两个\,即如果你
想在正则表达式中转移一个\,那么,你在编译过的String中需要两\。如果在编译的正则字符串中需要两个连续\,那么
在java源代码中需要四个连续的\,即双重转换。代码示例如下:
1 public class TestRegExp { 2 public static void main(String[] args) { 4 //把XYZ或ABC替换为a\b 5 String reg="a\\\\b"; 6 String input=">XYZ<=>ABC<"; 7 Pattern patt=Pattern.compile("ABC|XYZ"); 8 Matcher mc=patt.matcher(input); 9 System.out.println(mc.replaceFirst(reg)); 10 //输出:>a\b<=>ABC< 11 12 } 13 }