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

    1、正则表达式的概述和简单使用
      * A:正则表达式
        * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
        * 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的

    2、字符类演示
      * A:字符类

        * [abc] a、b 或 c(简单类)
        * [^abc] 任何字符,除了 a、b 或 c(否定)
        * [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
        * [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
        * [a-z&&[def]] d、e 或 f(交集)
        * [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
        * [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)


    3、预定义字符类演示
      * A:预定义字符类

        * . 任何字符(与行结束符可能匹配也可能不匹配)
        * d 数字:[0-9]
        * D 非数字: [^0-9]
        * s 空白字符:[ x0Bf ]
        * S 非空白字符:[^s]
        * w 单词字符:[a-zA-Z_0-9]
        * W 非单词字符:[^w]


    4、数量词
      * A:Greedy 数量词
        * X? X,一次或一次也没有
        * X* X,零次或多次
        * X+ X,一次或多次
        * X{n} X,恰好 n 次
        * X{n,} X,至少 n 次
        * X{n,m} X,至少 n 次,但是不超过 m 次

    5、正则表达式的分割功能
      * A:正则表达式的分割功能
        * String类的功能:public String[] split(String regex)

    6、正则表达式的替换功能
      * A:正则表达式的替换功能
        * String类的功能:public String replaceAll(String regex,String replacement)

    7、正则表达式的分组功能
      * A:正则表达式的分组功能
        * 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
          *
          1 ((A)(B(C)))
          2 (A
          3 (B(C))
          4 (C)

        * 组零始终代表整个表达式。

    8、Pattern和Matcher的概述
      * A:Pattern和Matcher的概述
      * B:模式和匹配器的典型调用顺序

        * 典型的调用顺序是
        * Pattern p = Pattern.compile("a*b");   //获取到正则表达式
        * Matcher m = p.matcher("aaaaab");    //获取匹配器
        * boolean b = m.matches();                   //看能否能匹配,匹配就返回true

        * 其实上面三句话和这句话的结果是一样的:System.out.println("aaaaab".matches("a*b"));

        * 典型调用顺序的应用:可以获取一堆数据中匹配正则表达式的字符串。具体见下面的例子。

    9、正则表达式的获取功能
      * A:正则表达式的获取功能
        * Pattern和Matcher的结合使用

    9例:

     1 public class Demo {
     2 
     3     public static void main(String[] args) {
     4         String s = "我的手机是18511866260,我曾用过18987654321,还用过18812345678";
     5         String regex = "1[3578]\d{9}";
     6         
     7         
     8         Pattern p = Pattern.compile(regex);   //获取到正则表达式
     9         Matcher m = p.matcher(s);             //获取匹配器
    10 
    11         while(m.find())
    12             System.out.println(m.group());
    13     }
    14 }
  • 相关阅读:
    【LibreOJ】#539. 「LibreOJ NOIP Round #1」旅游路线
    【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
    【LibreOJ】#538. 「LibreOJ NOIP Round #1」数列递推
    【Atcoder】ARC084 Small Multiple
    【BZOJ】4430: [Nwerc2015]Guessing Camels赌骆驼
    【NOIP】提高组2013 火柴排队
    OpenCV常用基本处理函数(8)图像变换
    OpenCV常用基本处理函数(7)图像金字塔和直方图
    OpenCV常用基本处理函数(6)图像梯度
    OpenCV常用基本处理函数(5)图像模糊
  • 原文地址:https://www.cnblogs.com/hfumin/p/10194367.html
Copyright © 2011-2022 走看看