正則表示式詳析+常用示例
阿新 • • 發佈:2022-01-10
目錄
- 一、正則的含義
- 二、正則表示式的應用場景
- 三、常用的格式校驗
- 四、元字元
- 五、反義程式碼
- 六、限定符
- 七、分組匹配
- 八、貪婪與非貪婪
- 九、零寬斷言
- 十、常用的實用正則表示式
一、正則的含義
正則表示式就是用來操作字串的一種邏輯公式
二、正則表示式的應用場景
- 資料分析時資料獲取的文字篩選
- 進行爬蟲時,資料的匹配
- 寫前端程式碼的時候,使用者輸入資料的驗證
- 測試人員對請求結果的資料驗證
- 批量文字編輯,比如
Sublime Text
或nodepad++
、EditPlus
等記事本軟體全都支援正則表示式的使用
三、常用的格式校驗
- 郵箱驗證
- IP地址驗證
- 電話號碼驗證
- 身份證號碼驗證
- 密碼強度驗證
- 網址驗證
- 漢字驗證
[\u4e00-\u9fa5]
- ......
- 凡是有一定規律的,批量的資料獲取,都可以使用正則表示式來完成
四、元字元
字元 | 說明 |
---|---|
. | 代表的是換行符以外的任意字元。 換行符是:(不同的有不同的換行符) \n \r\n |
\w | 匹配字母、數字、下劃線、漢字的一個字元 |
\s | 匹配任意的空白符 |
\d | 匹配數字 |
^ | 匹配字串的開始 |
$ | 匹配字串的結束 |
五、反義程式碼
反義程式碼的意思就是與元字元表示相反的程式碼
- \W 匹配的任意 不是 字母、數字、下劃線、漢字 的字元
- \S 匹配任意 不是 空白符的字元
- \D 匹配任意 不是 數字的字元
六、限定符
符號 | 說明 |
* | 代表的重複0次或者是多次 |
+ | 代表的重複1次或者是多次 |
? | 代表的是重複0次或者是1次 |
{n} | 重複n次,舉例:{3}指的就是重複3次 |
{n,} | 重複n次或者更多次數 |
{n,m} | 重複n次到m次,所以這裡m一般要比n |
七、分組匹配
findall / search/match
區別¶findall
是查詢所有的search
匹配第一個match
匹配開頭的
八、貪婪與非貪婪
- 貪婪的意思是儘可能多的匹配
- 非貪婪的意思就是儘可能少的匹配
- 非貪婪操作符是問號:'符號?'
- ?號代表的是重複0次或者是1次,再加www.cppcns.com一個問號,代表的是非貪婪操作,那麼最後就只匹配0次
分支條件匹配:
使用 | 來分隔開不同的正則表示式,代表著 條件1 或 條件2 或條件3 ......
九、零寬斷言
- 匹配"正則表示式reg"前邊的位置 (?=reg)
- 匹配"正則表示式reg"後邊的位置 (?<=reg)
- 匹配後邊跟的不是"正則表示式reg"的位置 (?!reg)
- 匹配前邊不是"正則表示式reg"的位置 (?<!reg)
十、常用的實用正則表示式
- 輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
- 輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
- 輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
- 輸入非零的正整數:"^"+?[1-9][0-9]*$"。
- 輸入非零的負整數:"^"-[1-9][]0-9"*$。
- 輸入長度為3的字元:"^.{3}$"。
- 輸入由26個英文字母組成的字串:"^[A-Za-z]+$"。
- 輸入由26個大寫英文字母組成的字串:"^[A-Z]+$"。
- 輸入由26個小寫英文字母組成的字串:"^[a-z]+$"。
- 輸入由數字和26個英文字母組成的字串:"^[A-Za-z0-9]+$"。
- 輸入由數字、26個英文字母或者下劃線組成的字串:"^"w+$"。
- 驗證使用者密碼:"^[a-zA-Z]"w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。
- 驗證是否含有^%&’,;=?$""等字元:"[^%&’,;=?$"x22]+"。
- 只能輸入漢字:"^["u4e00-"u9fa5]{0,}$"
- 驗證Email地址:"^"w+([-+.]"w+)*@"w+([-.]"w+)*"."w+([-.]"w+)*$"。
- 驗證InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。
- 驗證電話號碼:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
- 驗證身份證號(15位或18位數字):"^"d{15}|"d{18}$"。
- 驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09&quowww.cppcns.comt;和"1"~"12"。
- 驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
到此這篇關於正則表示式詳析+常用示例的文章就介紹到這了,更多相關正則表示式 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!