正则表达式

正则表达式用于操作字符串数据。通过一些特定的符号来体现的。

正则 表达式对字符串的常见操作:

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()); //输出单词在字符串中的位置
   }
}

 

posted @ 2017-11-02 16:38  jsddj  阅读(166)  评论(0编辑  收藏  举报