1.正則表示式-入門
前言:今天先分享正則表示式的基礎元字元,後續會分享正則表示式的子表示式,回溯引用,前後查詢,嵌入條件,,全部分享完成之後,會嘗試著去分享一些例子與拆分介紹。如果文字描述有問題可以評論指出,如果概念很模糊,可以加我微信,我會盡量解答你的疑惑。
一
正則表示式的定義
正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
二
正則表示式的字元區間
[]這個元符號可以定義一個字元集合,字元集合能夠與在該集合裡的字元區間的字元相匹配。字元區間可以使用 - 連字元來定義範圍。
-
A-Z 匹配從A到Z的所有大寫字母
-
a-z 匹配從a到z的所有小寫字母
-
A-Y 匹配從A到Y的所有大寫字母
-
A-z 匹配從ASCII字元A到ASCII字元z的所有字母
-
-只能在[]間出現,出現在[]外面,相等於匹配-
三
正則表示式取非
-
[^0-9] 匹配非數字
-
[^a-zA-Z] 匹配非英文
-
[^\S] 匹配非空白符
四
正則表示式的空白元字元
-
[\b] 回退並刪除一個字元(backspace)
-
\f 換頁符
-
\n 換行符
-
\r 回車符
-
\v 垂直製表符
-
\t 製表符tab鍵
注:\r\n是windows使用的文字行結束標籤,\n是unix/linux的文字行結束標籤
五
正則表示式的其他元字元
-
\d 匹配任何一個數字字元
-
\D 匹配任何一個非數字字元
-
\w 匹配任何一個字母數字字元(大小寫)或者下劃線字
符=[0-9a-zA-Z_]
-
\W 匹配任何一個非字母數字或非下劃線字元
=[^0-9a-zA- Z_]
-
\s 匹配任何一個空白字元=[\f\r\n\t\v]
-
\S 匹配任何一個非空白字元=[^\f\n\r\t\v]
六
正則表示式匹配字元
-
+ 匹配一個或多個字元
-
* 匹配零個或者多個,可有可無,可多可少
-
? 匹配零個或者一個字元 舉例:http與https
-
{} 可以設定匹配字元的次數
-
{3} 匹配三次
-
{4,8} 匹配最少4次,最多8次
-
{3,} 匹配重複最少3次
七
正則表示式的貪婪型字元與懶惰型字元
* + 為貪婪性元字元,在進行匹配時,行為模式是多多益善而不是適可而止的,會盡可能的從一段文字的開頭一直匹配到文字的末尾,而不是從這段文字的開頭匹配到碰到的第一個匹配是為止。
懶惰型字元相反。
貪婪型字元 | 懶惰型字元 |
* | *? |
+ | +? |
{n,} | {n,}? |
八
正則表示式邊界字元
\w相匹配的字元叫做單詞邊界,\W相匹配的叫做非單詞邊界
\b單詞邊界字元,例如:至匹配 at 而不匹配 what,可以使用 --\bat\b
\B匹配一個前後都不是單詞邊界的連字元(-),nine-digit不能匹配,color - coded的連字元(-)可以匹配