正則表達(dá)式詳析+常用示例
一、正則的含義
正則表達(dá)式就是用來操作字符串的一種邏輯公式
二、正則表達(dá)式的應(yīng)用場景
- 數(shù)據(jù)分析時數(shù)據(jù)獲取的文本篩選
- 進(jìn)行爬蟲時,網(wǎng)頁數(shù)據(jù)的匹配
- 寫前端代碼的時候,用戶輸入數(shù)據(jù)的驗證
- 測試人員對請求結(jié)果的數(shù)據(jù)驗證
- 批量文本編輯,比如
Sublime Text或nodepad++、EditPlus等記事本軟件全都支持正則表達(dá)式的使用
三、常用的格式校驗
- 郵箱驗證
- IP地址驗證
- 電話號碼驗證
- 身份證號碼驗證
- 密碼強(qiáng)度驗證
- 網(wǎng)址驗證
- 漢字驗證
[\u4e00-\u9fa5] - ......
- 凡是有一定規(guī)律的,批量的數(shù)據(jù)獲取,都可以使用正則表達(dá)式來完成
四、元字符
| 字符 | 說明 |
|---|---|
| . | 代表的是換行符以外的任意字符。 換行符是:(不同的操作系統(tǒng)有不同的換行符) \n \r\n |
| \w | 匹配字母、數(shù)字、下劃線、漢字的一個字符 |
| \s | 匹配任意的空白符 |
| \d | 匹配數(shù)字 |
| ^ | 匹配字符串的開始 |
| $ | 匹配字符串的結(jié)束 |
五、反義代碼
反義代碼的意思就是與元字符表示相反的代碼
- \W 匹配的任意 不是 字母、數(shù)字、下劃線、漢字 的字符
- \S 匹配任意 不是 空白符的字符
- \D 匹配任意 不是 數(shù)字的字符
六、限定符
| 符號 | 說明 |
| * | 代表的重復(fù)0次或者是多次 |
| + | 代表的重復(fù)1次或者是多次 |
| ? | 代表的是重復(fù)0次或者是1次 |
| {n} | 重復(fù)n次,舉例:{3}指的就是重復(fù)3次 |
| {n,} | 重復(fù)n次或者更多次數(shù) |
| {n,m} | 重復(fù)n次到m次,所以這里m一般要比n |
七、分組匹配
findall / search/match區(qū)別¶findall是查找所有的search匹配第一個match匹配開頭的
八、貪婪與非貪婪
- 貪婪的意思是盡可能多的匹配
- 非貪婪的意思就是盡可能少的匹配
- 非貪婪操作符是問號:'符號?'
- ?號代表的是重復(fù)0次或者是1次,再加一個問號,代表的是非貪婪操作,那么最后就只匹配0次
分支條件匹配:
使用 | 來分隔開不同的正則表達(dá)式,代表著 條件1 或 條件2 或條件3 ......
九、零寬斷言
- 匹配"正則表達(dá)式reg"前邊的位置 (?=reg)
- 匹配"正則表達(dá)式reg"后邊的位置 (?<=reg)
- 匹配后邊跟的不是"正則表達(dá)式reg"的位置 (?!reg)
- 匹配前邊不是"正則表達(dá)式reg"的位置 (?<!reg)
十、常用的實用正則表達(dá)式
- 輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"。
- 輸入有兩位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{2})?$"。
- 輸入有1~3位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{1,3})?$"。
- 輸入非零的正整數(shù):"^"+?[1-9][0-9]*$"。
- 輸入非零的負(fù)整數(shù):"^"-[1-9][]0-9"*$。
- 輸入長度為3的字符:"^.{3}$"。
- 輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"。
- 輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"。
- 輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"。
- 輸入由數(shù)字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"。
- 輸入由數(shù)字、26個英文字母或者下劃線組成的字符串:"^"w+$"。
- 驗證用戶密碼:"^[a-zA-Z]"w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字符、數(shù)字和下劃線。
- 驗證是否含有^%&’,;=?$""等字符:"[^%&’,;=?$"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位數(shù)字):"^"d{15}|"d{18}$"。
- 驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
- 驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
到此這篇關(guān)于正則表達(dá)式詳析+常用示例的文章就介紹到這了,更多相關(guān)正則表達(dá)式 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
13道關(guān)于JavaScript正則表達(dá)式的面試題
本文是小編給大家收藏整理的13道關(guān)于JavaScript正則表達(dá)式的面試題,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-10-10
8個你應(yīng)該了解的正則表達(dá)式提高你的工作效率
正則表達(dá)式也可以被當(dāng)作是一門語言,入門時可能很吃力,不過一旦學(xué)會了就方便很多,在處理一些比較復(fù)雜的替換時,正則表達(dá)式就會發(fā)揮它的真正作用,本文整理了一些常用的正則,感興趣的朋友可以了解下,或許對你有所幫助2013-01-01
簡單的用js實現(xiàn)過濾多余字符的正則表達(dá)式
利用正則表達(dá)法除去字符串中的重復(fù)字符,一個簡單的JavaScript正則表達(dá)式實例,將一串含有重復(fù)字符串中的多余字符濾除掉,請運(yùn)行查看效果。2010-10-10
一文搞懂正則表達(dá)式基礎(chǔ)語法以及如何應(yīng)用
正則表達(dá)式是一種描述字符串結(jié)構(gòu)的語法規(guī)則,是用于匹配字符串中字符組合的模式,同時正則表達(dá)式也是對象,下面這篇文章主要給大家介紹了關(guān)于如何通過一文搞懂正則表達(dá)式基礎(chǔ)語法以及如何應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-09-09
正則表達(dá)式 特殊字符應(yīng)用分析[簡單詳細(xì)入門必看]
網(wǎng)上的東西,都沒有這個詳細(xì),對于想入手正則表達(dá)式高級應(yīng)用的朋友,也是個不錯的資料參考。2008-11-11
正則表達(dá)式 匹配至少有一個非空白字符并且不超過指定長度
最近需要用到一個驗證,規(guī)則為:至少有一個非空白字符并且不超過指定長度,想用正則表達(dá)式來處理,上網(wǎng)搜了一下,發(fā)現(xiàn)其他人也有和我一樣的需求,并且有高手給了幾個很精彩的解決方案,現(xiàn)將網(wǎng)上的解決方案整理一下,以備其他有相同需求的人參考2011-11-11

