正则表达式第三篇(Java中使用正则表达式)
看一下最基础的用法,如下: //matches find lookingAt Pattern p = Pattern.compile("d{3,5}"); // 数字出现3-5次 String s = "123-34345-234-00"; Matcher m = p.matcher(s); //false matches:是匹配整个字符串。一次吃5个字符去匹配 ?? System.out.println("m.matches()="+m.matches()); System.out.println("2----------------------------------------"); m.reset(); // 字符串扫描归位:下面的从头开始扫描 System.out.println("m.find()="+m.find()); // 找一个匹配的字串而不是整个字符串 System.out.println(m.start() + "-" + m.end()); System.out.println("3----------------------------------------"); System.out.println("4----------------------------------------"); System.out.println(m.lookingAt()); /*每次从头找匹配的子串*/ System.out.println(m.lookingAt()); System.out.println(m.lookingAt()); System.out.println(m.lookingAt()); 在使用Pattern.compile函数时,可以加入控制正则表达式的匹配行为的参数,Pattern Pattern.compile(String regex,int flag) flag的取值范围如下:
public static void search1() { Pattern p = Pattern.compile("java"); Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf"); while(m.find()) { System.out.println(m.group()); } } public static void search2() { Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE); /* Pattern.CASE_INSENSITIVE:常量规则:忽大小写 */ Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf"); while(m.find()) { System.out.println(m.group()); } } public static void search3() { Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE); Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf"); StringBuffer buf = new StringBuffer(); while(m.find()) { m.appendReplacement(buf,"888"); /*将当前找到的进行替换并且换好后放到buf中去*/ } m.appendTail(buf); System.out.println(buf); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |