乾貨----001----什麼是Regex?

來源:互聯網
上載者:User

標籤:

什麼是Regex?

在編寫處理字串的程式或網頁時,經常會有尋找符合某些複雜規則的字串的需要。Regex就是用於描述這些規則的文法,Regex對於一個程式員來講是至關重要的一個知識點,所以學好正則是每一個程式員必須具備的。Regex不能獨立使用,它只是一種用來定義字串的規則模式,必須在相應的Regex函數中應用,才能實現對字串的匹配、尋找、替換及分割等操作。

1、Regex中包括的元素
(1)、原子(一般字元:a-z A-Z 0-9 、原子表、 逸出字元)
(2)、元字元 (有特殊功能的字元)
(3)、模式修正符 (系統內建部分字元 i 、m、S、U…)

2、Regex中的“原子”
①a-z A-Z _ 0-9 //最常見的字元
②(abc) (skd) //用圓括弧包含起來的單元符合
③[abcs] [^abd] //用方括弧包含的原子表,原子表中的^代表排除或相反內容
④逸出字元
\d 包含所有數字[0-9]
\D 除所有數字外[^0-9]
\w 包含所有英文字元[a-zA-Z_0-9]
\W 除所有英文字元外[^a-zA-Z_0-9]
\s 包含空白地區如斷行符號、換行、分頁等 [\f\n\r]
……

3、Regex元字元
* 匹配前一個內容的0次1次或多次
. 匹配內容的0次1次或多次,但不包含斷行符號換行
+ 匹配前一個內容的1次或多次
?匹配前一個內容的0次或1次
| 選擇匹配類似PHP中的| (因為這個運算子合是弱類型導致前面最為整體匹配)
^ 匹配字串首部內容
$ 匹配字串尾部內容
\b 匹配單詞邊界,邊界可以是空格或者特殊符合
\B 匹配除帶單詞邊界意外內容
{m} 匹配前一個內容的重複次數為M次
{m,} 匹配前一個內容的重複次數大於等於M次
{m,n} 匹配前一個內容的重複次數M次到N次
( ) 合并整體匹配,並放入記憶體,可使用\1 \2…依次擷取

4、模式修正符
模式修正符是為Regex增強和補充的一個功能,使用在正則之外
常用修正符
i 正則內容在匹配時候不區分大小寫(預設是區分的)
m 在匹配首內容或者尾內容時候採用多行識別匹配
S 將轉義斷行符號取消是為單行匹配如. 匹配的時候
x 忽略正則中的空白
A 強制從頭開始匹配
D 強制$匹配尾部無任何內容 \n
U 禁止貪婪匹配 只跟蹤到最近的一個匹配符並結束,常用在採集程式上的Regex

乾貨----001----什麼是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.