PHP中的正規運算式(二)

來源:互聯網
上載者:User

確定重複出現

到現在為止,你已經知道如何去匹配一個字母或數字,但更多的情況下,可能要匹配一個單詞或一組數字。一個單詞有若干個字母組成,一組數字有若干個單數組成。跟在字元或字元簇後面的花括弧({})用來確定前面的內容的重複出現的次數。

字元簇 含義
^[a-zA-Z_]$ 所有的字母和底線
^[[:alpha:]]{3}$ 所有的3個字母的單詞
^a$ 字母a
^a{4}$ aaaa
^a{2,4}$ aa,aaa或aaaa
^a{1,3}$ a,aa或aaa
^a{2,}$ 包含多於兩個a的字串
^a{2,} 如:aardvark和aaab,但apple不行
a{2,} 如:baad和aaa,但Nantucket不行
\t{2} 兩個定位字元
.{2} 所有的兩個字元

這些例子描述了花括弧的三種不同的用法。一個數字,{x}的意思是“前面的字元或字元簇只出現x次”;一個數字加逗號,{x,}的意思是“前面的內容出現x或更多的次數”;兩個用逗號分隔的數字,{x,y}表示“前面的內容至少出現x次,但不超過y次”。我們可以把模式擴充到更多的單詞或數字:

^[a-zA-Z0-9_]{1,}$ //所有包含一個以上的字母、數字或底線的字串
^[0-9]{1,}$ //所有的正數
^\-{0,1}[0-9]{1,}$ //所有的整數
^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$ //所有的小數

最後一個例子不太好理解,是嗎?這麼看吧:與所有以一個可選的負號(\-{0,1})開頭(^)、跟著0個或更多的數字([0-9]{0,})、和一個可選的小數點(\.{0,1})再跟上0個或多個數字([0-9]{0,}),並且沒有其他任何東西($)。下面你將知道能夠使用的更為簡單的方法。

特殊字元"?"與{0,1}是相等的,它們都代表著:“0個或1個前面的內容”或“前面的內容是可選的”。所以剛才的例子可以簡化為:

^\-?[0-9]{0,}\.?[0-9]{0,}$

特殊字元"*"與{0,}是相等的,它們都代表著“0個或多個前面的內容”。最後,字元"+"與 {1,}是相等的,表示“1個或多個前面的內容”,所以上面的4個例子可以寫成:

^[a-zA-Z0-9_]+$ //所有包含一個以上的字母、數字或底線的字串
^[0-9]+$ //所有的正數
^\-?[0-9]+$ //所有的整數
^\-?[0-9]*\.?[0-9]*$ //所有的小數

當然這並不能從技術上降低正規運算式的複雜性,但可以使它們更容易閱讀。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.