• java之正则表达式


    一、匹配字符串

         String类的matchs方法用的是正则表达式匹配,matchs方法与equals类似。

         "javac".matchs("javac");

         "javac".equals("javac");

         结果都为true。

        match方法更强大,不仅能匹配固定字符串,还能匹配具有相同规律的的字符串。

        ”javac jar".macths("javac.*");

        ”javac jar javac".macths("javac.*");

        ”javac jar java".macths("javac.*");

        字符串.*匹配任何0个或者多个字符。


    二、正则表达式的语法

        正则表达式由字面字符和特殊字符组成。特殊字符(、)、[和]

        注意:反斜杠是一个特殊字符,在字符串中开始转义序列。所以java中需要使用\d来代表d。

        提醒:空白字符是' ', ' ', ' ', ' ', 或者'f'。

     常用的正则表达式

    正则表达式 匹配 事例
    x 指定字符X javac匹配javac
    . 任意单个字符 javac匹配ja..c
    (ab|cd) ab或cd on匹配o(a|n)
    [abc] a、b或者c pen匹配pe[abn]
    [^abc} 除开a、b和cd任意字符 sun匹配[^abc]un
    [a-z] a到z god匹配go[a-d]
    [^a-z] 除开a到z的任意字符 god匹配go[a-c]
    [a-e[m-p]] a到e或者m到p sun匹配su[a-b[i-o]]
    [a-e&&[m-p]] a到e或者m到p sun匹配su[a-o&&[i-o]]
    d 数字字符,等同于[0-9] java8匹配"java[\d]"
    D 非数字字符,等同于[^0-9] java匹配"jav[\D]"
    w 单词字符,等同于[a-zA-Z0-9_] java匹配"jav\w"
    W 非单词字符,等同于[^a-zA-Z0-9_] java8匹配"java\W"
    s 空白字符,等同于[ f] java jar匹配"javasjar"
    S 非空白字符,等同于[^ f] java匹配"javS"
    p* 模式p的0或多次出现 abab匹配"(ab)*"
    p+ 模式p的1或多次出现 aba匹配"a+ba"
    p{n} 模式p的n次出现 abab不匹配".{2}"
    p{n, } 模式p的至少n次出现 abab匹配".{2,}"
    p{n,m} 模式p出现的次数大于等于n且小于等于m ababa不匹配".{2,4}"
    p? 模式p的0或1次出现 abab不匹配".?"

         注意:单词字符是任意的字母、数字或者下划线字符。

               w等同于[a-z[A-Z][0-9]_]或者化简为[a-zA-Z0-9_]。

               W等同于[^a-zA-Z0-9_]。

               以斜杠开头的正则表达式必须加中括号[]。

               例如:"11-22-33".matchs("[\w]{2}-[\w]{2}-[\w]{2}");          结果为true

                           "111-22-33".matchs("[\w]{2}-[\w]{2}-[\w]{2}");          结果为false


              量词符*、+、?、{n}、{n, }、{n,m}
              *等同于{0,},+等同于{1,},?等同于{0,2}
               警告:不要在重复量词符中使用空白,例如Z{2,4}不能在逗号后面有空白符的Z{2, 4}。
       
              可以使用括号对模式进行分组。例如:(ab){3}匹配ababab,但是ab{3}匹配abbb。

              小括号符和中括号符都是特殊字符,如果小括号符要表示其字面意思,则必须写成"\(","\)"。
              例如:"(xxx)xxx-xxx".matchs("\(x{3}\)x{3}-x{3}")
  • 相关阅读:
    WPF学习10:基于MVVM Light 制作图形编辑工具(1)
    外文翻译 《How we decide》赛场上的四分卫
    算法学习01:二分查询,选择法、插入法、分治法排序
    外文翻译 《How we decide》 Introduction
    WPF学习09:数据绑定之 Binding to List Data
    WPF学习08:MVVM 预备知识之COMMAND
    WPF学习07:MVVM 预备知识之数据绑定
    WPF学习05:2D绘图 使用Transform进行控件变形
    WPF学习06:转换控件内容为可存储图片
    WPF学习04:2D绘图 使用Shape绘基本图形
  • 原文地址:https://www.cnblogs.com/maokun/p/6710821.html
Copyright © 2020-2023  润新知