java Regex

來源:互聯網
上載者:User

標籤:direct   基本文法   方式   img   aaa   規則   http   運算元   image   

1. 什麼是Regex

   Regex使用單個字串來描述、匹配一系列符合某個句法規則的字串。Regex可以用形式化語言理論的方式來表達。Regex由常量和運算元組成,它們分別指示字串的集合和在這些集合上的運算

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"

 

輸出為:

 

  

java Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.