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);
}

posted @ 2017-08-13 10:24  陆敏技  阅读(522)  评论(0编辑  收藏  举报
Web Counter
Coupon for Contacts