java正则表达式(六)

六、字符转义

如果你想查找元字符本身,比如你查找“.”,“*”,就会出现问题,因为你没办法指定它们,它们会被解释成正则表达式。

这时,我们就要用\来取消这些字符的特殊意义,让正则表达式进行匹配时,将它们翻译为普通的字符串。

因此,我们应该使用\.,\*,当然要查找\本身,必须使用\\。

比如:unibetter\.com匹配unibetter.comC:\\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 } 

 

 

 

posted on 2012-10-18 21:47  loritin  阅读(308)  评论(0编辑  收藏  举报

导航