zoukankan      html  css  js  c++  java
  • 正则表达式

    正则表达式:用一组特殊的字符描述的一个字符串格式,用来匹配一组字符串并判断是否符合格式要求。正则表达式就是记录文本规则的代码,只关注格式正确,很少关注内容有效

    字符集合:

     “[a-z]”   表示a到z的任意一个字符

    “[abc]”    表示abc中任意一个字符

    “[^abc]”  表示除了abc外任意一个字符

    “[a-z0-9]”       表示a到z之间和0到9之间字符

    “[a-z]+”  表示由1个或多个a-z字符组成的字符串

     1 /**
     2  *    字符串支付正则表达式的方法1
     3  *    匹配格式
     4  * @author Administrator
     5  *
     6  */
     7 public class demo01 {
     8     public static void main(String[] args) {
     9         /*
    10          * 匹配邮箱
    11          * [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(.[a-zA-Z0-9])+
    12          */
    13         String str = "[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9])+";
    14         String mail = "like@gmail.com.cn";//不是邮箱
    15         /*
    16          * Java中match方法是全匹配的,
    17          */
    18         boolean match = mail.matches(str);
    19         if(match){
    20             System.out.println("是邮箱");
    21         }else{
    22             System.out.println("不是邮箱");
    23         }
    24         
    25         
    26     }
    27 }

    预定义字符集:

    “.”          表示任意一个字符

    “d”        0到9任意一个字符[0-9]

    “w”        单词字符,相当于[a-zA-Z0-9]

    “s”         空白字符,相当于[ f ]

    “D”        非数字字符

    以此类推

    package APIday03;
    /**
     * 身份证验证
     * @author Administrator
     *
     */
    public class demo02 {
        public static void main(String[] args) {
            /*
             * d{17}[0-9xX]
             */
            String regex = "\d{17}[0-9xX]";
            
            String id = "12345678901234567x";
            
            if(id.matches(regex)){
                System.out.println("是身份证号");
                
            }else{System.out.println("不是身份证号");}
        }
    }

    数量词:

    X?          0到1个X

    X*          0到任意多个X

    X+          1到任意多个X

    X{n}      n次以上个X

    X{n,}     n次以上个X

    X{n,m}   n到m个X

    “()”分组,括号里面的为一个整体

    边界匹配:

    “^”         代表字符串开始

    “$”         代表字符串结束

      String replaceAll(Stirng regex,String replace): 将字符串中满足正则表达式的部分替换为给定内容

    1 public class demo04 {
    2     public static void main(String[] args){
    3         String str = "ingredident12vigorously23installment93";
    4         str = str.replaceAll("\d+","#num#");
    5         System.out.println(str);//ingredident#num#vigorously#num#installment#num#
    6         
    7     }
    8 }

    String spilt(String regex):
     将当前字符串中满足正则表达式的部分拆分

     1 public class demo03 {
     2     public static void main(String[] args) {
     3         String str = "students,teachers,vigorous";
     4         String[] array = str.split(",");
     5         /*
     6          *students
     7          *teachers
     8          *vigorous
     9          */
    10         for(int i = 0;i<array.length;i++){
    11             System.out.println(array[i]);
    12         }
    13     }
    14 }
  • 相关阅读:
    图-拓扑排序
    图-最短路径-Dijkstra及其变种
    【链表问题】打卡7:将单向链表按某值划分成左边小,中间相等,右边大的形式
    【链表问题】打卡5:环形单链表约瑟夫问题
    【链表问题】打卡6:三种方法带你优雅判断回文链表
    【链表问题】打卡4:如何优雅着反转单链表
    【链表问题】打卡3:删除单链表的中间节点
    【链表问题】打卡2:删除单链表的第 K个节点
    史上最全面试题汇总,没有之一,不接受反驳
    一些可以让你装逼的算法技巧总结
  • 原文地址:https://www.cnblogs.com/zflovezk9/p/6786600.html
Copyright © 2011-2022 走看看