天天看点

java转义符和正则表达式转义符

举例来说,连续相同的3位数字的正则表达式的标准语法是:

([\d])\1{2}

但是如果在java代码中这么写,就会出现语法错误,如下:

String regEx = "([\d])\1{2}";

考虑到\符号在java字符串的语法中属于转义符,所以,需要的java的语法是:

String regEx = "([\\d])\\1{2}";

为了加深印象,再来看下一个例子:前面连续相同的3位数字,后面连续相同的三位字符的正则表达式的标准语法是:

(\d)\1{2}(.)\2{2}

而在java中,是这么写的:

String regEx = "(\\d)\\1{2}(.)\\2{2}";

注意,\1和\2指的是patten的位置。

最后给出整段测试代码:

@Test public void test02(){     // 要验证的字符串     String str = "111";     // 正则表达式规则     String regEx = "([\\d])\\1{2}";     //String regEx = "([\d])\1{2}";     // 编译正则表达式     Pattern pattern = Pattern.compile(regEx);     // 忽略大小写的写法     // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);     Matcher matcher = pattern.matcher(str);     // 查找字符串中是否有匹配正则表达式的字符/字符串     boolean rs = matcher.find();     System.out.println(rs); } 本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/p/7352589.html,如需转载请自行联系原作者