• java 正则表达式


    1. 什么是正则表达式

       正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式可以用形式化语言理论的方式来表达。正则表达式由常量和算子组成,它们分别指示字符串的集合和在这些集合上的运算

    2. 基本语法

       符号

           -----优先级

            * 具有最高优先级 代表前面的字符可以不出现,也可以出现一次或者多次。(0次、或1次、或多次)。例如,「0*42」可以匹配42042004200042

            () 第二优先级  圆括号可以用来定义操作符的范围和优先度。例如,「gr(a|e)y」等价于「gray|grey」,「(grand)?father」匹配fathergrandfather

            |  最低优先级  竖线符代表选择(即并集)。例如「gray|grey」可以匹配grey或gray。 

          -----数量

           +   加号代表前面的字符必须至少出现一次。(1次、或多次)。例如,「goo+gle」可以匹配googlegoooglegoooogle等;

           ?   问号代表前面的字符最多只可以出现一次。(0次、或1次)。例如,「colou?r」可以匹配color或者colour

           *   星号代表前面的字符可以不出现,也可以出现一次或者多次。(0次、或1次、或多次)。例如,「0*42」可以匹配42042004200042等。

           {n}  n是一个非负整数。匹配确定的n次。例如,「o{2}」不能匹配「Bob」中的「o」,但是能匹配「food」中的两个o。

          {n,}  n是一个非负整数。至少匹配n次。例如,「o{2,}」不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o。「o{1,}」等价于「o+」。「o{0,}」则等价于「o*」。

          {n,m}   m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}」将匹配「fooooood」中的前三个o。「o{0,1}」等价于「o?」。请注意在逗号和两个数之间不能有空格。

       比如

        (ab)c == abc

        a|(b(c*)) ==  a|bc*

           a|b*    代表  {a , "" (空), bbbbbb, ...}

          (a|b)*   代表   由包括空串、任意数目个ab字符组成的所有字符串的集合

        ab*(c|ε) 代表  开始于一个a接着零或多个b和最终可选的一个c的字符串的集合

    3. 正则上组的概念 

        例如  ((A)(B(C)))  

        第0组  ((A)(B(C)))

        第一组  ((A)(B(C)))

        第二组  (A)

        第三组  (B(C))

        第四组 (C)

    4. java上应用

      等价于

      表示用 规则 a*b a可以出现0~n去匹配字符串"aaaaaab"

     

    输出为:

      

    学会勇敢
  • 相关阅读:
    软件工程的国家标准下载链接
    电子计算机机房设计规范
    建筑物防雷设计规范
    信息系统项目管理师考试大纲
    计算机信息系统安全保护等级划分准则
    信息系统工程监理单位资质管理办法
    信息系统工程监理工程师资格管理办法
    计算机软件保护条例
    信息系统工程监理暂行规定
    第一个Winform 程序 (附一个需求实现,望大家帮忙)
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/7655662.html
Copyright © 2020-2023  润新知