正则表达式
正则表达式用于操作字符串数据。通过一些特定的符号来体现的。
正则 表达式对字符串的常见操作:
1.匹配
其实使用的就是String类的matches方法。
public static void functionDemo_1(){ //匹配手机号码是否正确 String tel="15800001111"; String regex="1[3589]\d{9}"; boolean b=tel.matches(regex); System.out.println(tel+":"+b); }
2.切割
其实使用的是String类中的split方法
public static void funcitonDemo_2(){ /* *String str="zhangsan xiaoqiang zhaoliu"; *Stirng [] names=str.spllit(" "); *for(Stirng name:names) *{ * System.out.println(name); *}
*/ String str="zhangsan xiaoqiang zhaoliu"; Stirng [] names=str.spllit(" +"); for(Stirng name:names) { System.out.println(name); } //如用几个字母复用,如ttt,mmmmm ,可以用(.) //.表示任意字符,()称为组,组有编号,从1开始,编号表示\1 //所以上述要求,可用(.)\\1+表示 }
组:((A)(B(C))) 按左括号数进行分组,第一组((A)(B(C))),第二组(A),第三组(B(C)),第四组(C)
3.替换
其实使用的是String类中的replaceAll()方法
public static void funcitonDemo_3() { String str="zhangsanttttxiaoqiangmmmmmzhaoliu"; //第二参数中,为了取第一组的内容可用$ str=str.replaceAll("(.)\\1+","$1"); System.out.println(str); /* *为了将电话号码中的若干位替换为*,可用如下方法 *String tel="15800001111"; *tel=tel.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2"); */ }
4.获取
//将正则规则进行对象的封装。 Pattern p=Pattern.compile("a*b"); //通过正则对象的matcher与方法字符串相关联。获取要对字符串操作的匹配器地象Matcher Matcher m=p.matcher("aaaab"); //通过Matcher匹配器对象的方法对字符串进行操作 boolean b=m.matches();
public static void functionDemo_4(){ //查找包含三个字母的英文单词 String str="da jia hao,ming tian bu fang jia!"; String regex="\\b{a-z}{3}\\b"; \\b为单词边界 Pattern p=Pattern.compile(regex); Matcher m=p.matcher(str); while(m.find()) //利用上述规则,对字符串进行查找 { System.out.println(m.group()); //获取匹配的子序列 System.out.println(m.start()+":"+m.end()); //输出单词在字符串中的位置 } }