正则表达式总结

来源:互联网 发布:黑客网络hacknet攻略 编辑:程序博客网 时间:2024/06/07 17:50

一、公式

[ad-z]     //a到z,不包括bc\d   //数字0-9\D   //非数字\s   //空白字符\S   //非空白字符\w   //单词字符。a-z A-Z 0-9 _\W   //非单词字符X?  //X出现了一次或一次也没有X*  //X出现零次或多次X+  //X出现一次或多次X{n}     //X恰好n次 X{n,}    //X至少n次X{n,m}   //X至少n次,但是不超过m次(X)     //作为捕获组\n      //引用组\\b     //为单词边界
二、正则表达式对字符串的常见操作:=================1.匹配—-

用String类中的matches的方法进行匹配

    String str="abbbc";    String reg="ab+c";    boolean b=str.matches(reg);    System.out.println(b);

用正则表达式匹配

     String qq="123456";     String regex="[1-9]\\d{4,14}";//正则表达式,第一位1—9.第二位0—9,大括号控制位数     boolean b=qq.matches(regex);     System.out.println(qq+":"+b);

2.切割

   /***组:((A)(B(C)))中包括4个这样的组   *   1.((A)(B(C)))*   2.\A*   3.(B(C))*   4.(C)**/

用String类中的split方法切割

    String str="zhangsan  xiaoqiang  zhaoliu";    String[] names=str.split(" +");    for(String name :names){        System.out.println(name);

用正则表达式切割

    String str="bujingguowotongyibuyaozhuanzaiaaaaaa";    String[] names=str.split("(.)\\1+");// 小括号封装,定义为第一组    for(String name :names){        System.out.println(name);    }

3.替换

使用String类中的replaceAll()方法替换

    String str="zhangddddfjalkjlecccliuli";    str=str.replaceAll("(.)\\1","$1" );    System.out.println(str);

用正则表达式替换2 隐藏部分信息

    String str="13777777777";    str=str.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");    System.out.println(str);

4.获取

将正则规则进行对象的封装Pattern p=Pattern.compile("a*b");//通过正则对象的match而方法字符串相关联。获取要对字符串操作的匹配器对象MatcherMatcher m=p.matcher("aaaaab");//通过matcher匹配器对象的方法对字符串进行操作boolean b=m.matches();

获取字符串里连续三个字符

    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);    //使用Matcher对象的方法对字符串进行操作    //既然要获取三个字母组成的单词    //查找  find();    while(m.find())     System.out.println(m.group());//System.out.println(m.start()+":"+m.end());可以获取字符串位置
原创粉丝点击