java正则表达式补充

System.out.println("-----------?:测试--------------");
Pattern per1 = Pattern.compile("k(?:aa)");
Matcher mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
//匹配aab
}
System.out.println("-----------?=测试--------------");
per1 = Pattern.compile("k(?=aa)");
mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
            //向后看0宽度匹配nAbcdef
}

System.out.println("-----------?!测试--------------");
per1 = Pattern.compile("k(?!aa)");
mcer1 = per1.matcher("kkaabaa");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向后看0宽度匹配k
}

System.out.println("-----------?<=测试--------------");
per1 = Pattern.compile("(?<=aa)m");
mcer1 = per1.matcher("aamkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
            //向前看0宽度匹配
//m
}

System.out.println("-----------?<!测试--------------");
per1 = Pattern.compile("(?<!aa)k");
mcer1 = per1.matcher("aakkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
            //向前看0宽度匹配
//k
}



System.out.println("-----------?i和?-i测试--------------");
per1 = Pattern.compile(".(?i)abc(?-i)def");
mcer1 = per1.matcher("nnnnnnnnnnAbcdef");
while (mcer1.find()) {
System.out.println(mcer1.group());
            //匹配nAbcdef
}

per1 = Pattern.compile("(?-i)abc(?i)def");
mcer1 = per1.matcher("AbcDef");
while (mcer1.find()) {
System.out.println(mcer1.group());
//不匹配
}


System.out.println("-----------贪婪和懒惰和固定测试--------------");
//Pattern p = Pattern.compile(".{3,10}[0-9]");//贪婪 0-10
//Pattern p = Pattern.compile(".{3,10}?[0-9]");//懒惰 0-5和0-10
Pattern p = Pattern.compile(".{3,10}+[0-9]");//固定 不匹配没有结果显示
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
while(m.find())
System.out.println(m.start() + "-" + m.end());

你可能感兴趣的:(java,正则表达式)