前言:今天先分享正則表達式的基礎元字符,後續會分享正則表達式的子表達式,回溯引用,前後查找,嵌入條件,,全部分享完成之後,會嘗試著去分享一些例子與拆分介紹。如果文字描述有問題可以評論指出,如果概念很模糊,可以加我微信,我會盡量解答你的疑惑。
一
正則表達式的定義
正則表達式,又稱規則表達式。(英語: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的連字符(-)可以匹配
閱讀更多 愛笑的阿杰 的文章