study - 一文入門正則表達(dá)式 每日看點(diǎn)
正則表達(dá)式是什么
校驗(yàn)數(shù)據(jù)的有效性、查找符合要求的文本以及對(duì)文本進(jìn)行切割和替換等操作。
(資料圖片僅供參考)
正則表達(dá)式的目的是真正的強(qiáng)大之處就在于可以查找符合某個(gè)規(guī)則的文本。
元字符
1.特殊字符串
. 除換行符外任意字符\d 表示任意單個(gè)數(shù)字 \w 表示任意單個(gè)數(shù)字或字母或下劃線\s 表示任意單個(gè)空白符\D \W \S,意思正相反。
2.空白符
\r 回車符\n 換行符\f 換頁(yè)符\t 制表符\v 垂直制表符\s 任意空白符3.量詞
* 代表0次到多次+ 1次到多次? 0到1次{m} 出現(xiàn)m次{m,} 出現(xiàn)至少m次{m,n} m到n次4.范圍
|或 ,如ab|bc
代表ab或bc... 多選一,括號(hào)中任意單個(gè)元素a-z 匹配a-z之間任意單個(gè)元素^.. 取反,不能包括括號(hào)中的任意單個(gè)元素貪婪匹配、非貪婪匹配和獨(dú)占模式
貪婪模式的特點(diǎn)就是盡可能進(jìn)行最大長(zhǎng)度匹配非貪婪模式會(huì)盡可能短地去匹配。獨(dú)占模式和貪婪模式很像,獨(dú)占模式會(huì)盡可能多地去匹配,如果匹配失敗就結(jié)束,不會(huì)進(jìn)行回溯,這樣的話就比較節(jié)省時(shí)間。具體的方法就是在量詞后面加上加號(hào)(+),例如xy{1,3}+yz
注意: Python 和 Go 的標(biāo)準(zhǔn)庫(kù)目前都不支持獨(dú)占模式。
(“.+?”)|\w{2,6}
分組和引用
如圖所示的正則,將日期和時(shí)間都括號(hào)括起來(lái)。這個(gè)正則中一共有兩個(gè)分組,日期是第 1 個(gè),時(shí)間是第 2 個(gè)。
1.不保存子組
分組的作用就是后續(xù)可能還會(huì)被引用到,但是如果不需要引用的時(shí)候可以添加不保存子組,表達(dá)式(?:xxx)
,優(yōu)點(diǎn)是正則性能會(huì)更好,在子組計(jì)數(shù)時(shí)也更不容易出錯(cuò)。
2.括號(hào)嵌套
分組引用在查找中使用
...略
四種匹配模式
1.不區(qū)分大小寫模式(Case-Insensitive)
不區(qū)分大小寫模式,正則表達(dá)式(?i)cat
,這樣匹配的字符就不區(qū)分大小寫了
如果我們想要前面匹配上的結(jié)果,和第二次重復(fù)時(shí)的大小寫一致,那該怎么做呢?我們只需要用括號(hào)把修飾符和正則 cat 部分括起來(lái),加括號(hào)相當(dāng)于作用范圍的限定,讓不區(qū)分大小寫只作用于這個(gè)括號(hào)里的內(nèi)容。正則表達(dá)式((?i)cat)
2.點(diǎn)號(hào)通配模式(Dot All)
元字符里講.
可以匹配除了換行以外的任何元素,用單行模式中使用.
,正則表示式(?s).
3.多行匹配模式
多行模式的表達(dá)式(?m)^...|...$
,這樣的匹配好處是每一行
斷言
斷言是指對(duì)匹配到的文本位置有要求。
1.單詞邊界
在準(zhǔn)確匹配單詞時(shí),我們使用 \b...\b
就可以實(shí)現(xiàn)了,也可以指定表達(dá)式的開頭和結(jié)尾^...$
2.環(huán)視
環(huán)視的主要是定義清晰的邊界。
(?<=Y)
,左邊是Y(?<=!Y)
,左邊不是Y(?=Y)
,右邊是Y(?!Y)
,右邊不是Y左尖括號(hào)代表看左邊,沒(méi)有尖括號(hào)是看右邊,感嘆號(hào)是非的意思。
常用正則Demo
正則表達(dá)式用于字符串處理、表單驗(yàn)證等場(chǎng)合,實(shí)用高效?,F(xiàn)將一些常用的表達(dá)式收集于此,以備不時(shí)之需。
匹配中文字符的正則表達(dá)式:[u4e00-u9fa5]
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^x00-xff]
匹配空白行的正則表達(dá)式:ns*r匹配HTML標(biāo)記的正則表達(dá)式:<(S*?)[^>]*>.*?|<.*? />
匹配首尾空白字符的正則表達(dá)式:^s*|s*$
匹配Email地址的正則表達(dá)式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配網(wǎng)址URL的正則表達(dá)式:[a-zA-z]+://[^s]*
匹配帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國(guó)內(nèi)電話號(hào)碼:d{3}-d{8}|d{4}-d{7}
( 匹配形式如 0511-4405222 或 021-87888822)匹配中國(guó)郵政編碼:[1-9]d{5}(?!d)
匹配身份證:d{15}|d{18}
2.匹配特定數(shù)字:
匹配正整數(shù)^[1-9]d*$
匹配負(fù)整數(shù) ^-[1-9]d*$
匹配整數(shù) ^-?[1-9]d*$
匹配非負(fù)整數(shù)(正整數(shù) + 0)^[1-9]d*|0$
匹配非正整數(shù)(負(fù)整數(shù) + 0)^-[1-9]d*|0$
匹配正浮點(diǎn)數(shù) ^[1-9]d*.d*|0.d*[1-9]d*$
匹配負(fù)浮點(diǎn)數(shù) ^-([1-9]d*.d*|0.d*[1-9]d*)$
匹配浮點(diǎn)數(shù) ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
匹配非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) +0) ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
匹配非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$
3.匹配特定字符串:
匹配由26個(gè)英文字母組成的字符串^[A-Za-z]+$
匹配由26個(gè)英文字母的大寫組成的字符串 ^[A-Z]+$
匹配由26個(gè)英文字母的小寫組成的字符串 ^[a-z]+$
匹配由數(shù)字和26個(gè)英文字母組成的字符串 ^[A-Za-z0-9]+$
匹配由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串 ^w+$
只能輸入數(shù)字:^[0-9]*$
只能輸入n位的數(shù)字:^d{n}$
只能輸入至少n位數(shù)字:^d{n,}$
只能輸入m-n位的數(shù)字:^d{m,n}$
只能輸入零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
只能輸入有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
只能輸入有1-3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
只能輸入非零的正整數(shù):^+?[1-9][0-9]*$
只能輸入非零的負(fù)整數(shù):^-[1-9][0-9]*$
只能輸入長(zhǎng)度為3的字符:^.{3}$
只能輸入由26個(gè)英文字母組成的字符串:^[A-Za-z]+$
只能輸入由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$
只能輸入由26個(gè)小寫英文字母組成的字符串:^[a-z]+$
只能輸入由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$
只能輸入由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:^w+$
驗(yàn)證用戶密碼:^[a-zA-Z]w{5,17}$
正確格式為:以字母開頭,長(zhǎng)度在6-18之間,只能包含字符、數(shù)字和下劃線。驗(yàn)證是否含有^%&"",;=?$"等字符:[^%&"",;=?$x22]+
只能輸入漢字:^[u4e00-u9fa5],{0,}$
驗(yàn)證Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
驗(yàn)證InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
驗(yàn)證電話號(hào)碼:^((d{3,4})|d{3,4}-)?d{7,8}$
關(guān)鍵詞:
責(zé)任編輯:孫知兵
免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與太平洋財(cái)富網(wǎng)無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
如有問(wèn)題,請(qǐng)聯(lián)系我們!
- study - 一文入門正則表達(dá)式 每日看點(diǎn)2023-03-08
- 【速看料】焦點(diǎn)熱門:花旗:到2030年鋰需求2023-03-08
- 什么是保險(xiǎn)費(fèi)計(jì)算 全球看熱訊2023-03-08
- 達(dá)美樂(lè)中國(guó)重啟香港IPO:營(yíng)收增速下滑,門2023-03-08
- 動(dòng)態(tài):什么是保險(xiǎn)合同變更2023-03-08
- 長(zhǎng)城證券擬發(fā)行不超20億元公司債券,期限分2023-03-08
- 湯姆貓:在產(chǎn)品功能原型測(cè)試環(huán)節(jié)已產(chǎn)生投入2023-03-08
- 杭州禮贈(zèng)品、文創(chuàng)產(chǎn)品及數(shù)字化展覽會(huì)盛大開2023-03-08
- 全球看熱訊:面對(duì)美股重挫 交易員選擇涌向2023-03-08
- 什么是保險(xiǎn)法快速理賠2023-03-08
- 嘀嗒出行重啟赴港IPO,蔚來(lái)資本、京東等為2023-03-08
- 世界信息:當(dāng)前關(guān)注:新湖中寶注銷此前回購(gòu)2023-03-08
- 什么是保險(xiǎn)償付能力2023-03-08
- 【環(huán)球財(cái)經(jīng)】肯尼亞將于今年底開始零股交易2023-03-08
- 東風(fēng)集團(tuán):1-2月累計(jì)汽車銷量為26.2萬(wàn)輛 2023-03-08
- 平安銀行:將持續(xù)加強(qiáng)房地產(chǎn)貸款風(fēng)險(xiǎn)管控|2023-03-08
- 【世界播資訊】每日觀察!新股消息 | 傳自2023-03-08
- 最資訊丨健康險(xiǎn)要怎么買?2023-03-08
- 環(huán)球即時(shí):棲霞物業(yè)擬為星葉艾佳提供150萬(wàn)2023-03-08
- 天天熱訊:環(huán)球微頭條丨華僑城:“18僑城062023-03-08
- 靈活就業(yè)人員如何申請(qǐng)企業(yè)職工基本養(yǎng)老保險(xiǎn)2023-03-08
- 乘聯(lián)會(huì)秘書長(zhǎng):東風(fēng)汽車聯(lián)手政府大降價(jià)有示2023-03-08
- 【財(cái)經(jīng)分析】豆粕市場(chǎng)降溫 飼料企業(yè)迎來(lái)“2023-03-08
- 東風(fēng)標(biāo)致回應(yīng)參與湖北汽車補(bǔ)貼:正常市場(chǎng)行2023-03-08
- 海康機(jī)器人IPO獲受理 “??迪?rdquo;上市公司2023-03-08
- 包鋼股份煉鐵廠:算好“經(jīng)濟(jì)”賬 打好“質(zhì)2023-03-08
- 股價(jià)“狂飆” “港劇式直播”日銷千萬(wàn) TV2023-03-08
- 環(huán)球信息:原料采購(gòu)“多年來(lái)最艱難”!統(tǒng)一2023-03-08
- 今日電腦主題怎么把圖標(biāo)統(tǒng)一_電腦主題怎么2023-03-08
- 凍梨應(yīng)該怎么吃_凍梨咋做又咋吃2023-03-08
精彩推薦
- study - 一文入門正則表達(dá)式 每日看點(diǎn)
- 股價(jià)“狂飆” “港劇式直播”日銷千萬(wàn)...
- 環(huán)球信息:原料采購(gòu)“多年來(lái)最艱難”!統(tǒng)...
- 今日電腦主題怎么把圖標(biāo)統(tǒng)一_電腦主題怎...
- 凍梨應(yīng)該怎么吃_凍梨咋做又咋吃
- 中金:維持明源云跑贏行業(yè)評(píng)級(jí) 目標(biāo)價(jià)9港元
- 全球最新:寶龍地產(chǎn)前2個(gè)月累計(jì)合約銷售...
- 中國(guó)聯(lián)通發(fā)布年度業(yè)績(jī) 股東應(yīng)占盈利167...
- WKK INTL (HOLD):臺(tái)灣港建2月營(yíng)業(yè)收...
- 長(zhǎng)城汽車2月汽車銷量同比減少3.65%至6.82萬(wàn)臺(tái)
- 環(huán)球觀點(diǎn):Mysteel晚餐:唐山鋼坯成本上...
- 消息!樓市探春|實(shí)探昆明西北新城:看房...
- 全球微資訊!我市部署一季度服務(wù)業(yè)運(yùn)行...
- 癡情不是罪過(guò)忘情不是灑脫是什么歌 當(dāng)...
- 國(guó)泰航空2022年全年?duì)I收510.36億港元
閱讀排行
- 湯姆貓:在產(chǎn)品功能原型測(cè)試環(huán)節(jié)...
- 杭州禮贈(zèng)品、文創(chuàng)產(chǎn)品及數(shù)字化展...
- 【環(huán)球財(cái)經(jīng)】肯尼亞將于今年底開...
- 東風(fēng)集團(tuán):1-2月累計(jì)汽車銷量為2...
- 平安銀行:將持續(xù)加強(qiáng)房地產(chǎn)貸款...
- 乘聯(lián)會(huì)秘書長(zhǎng):東風(fēng)汽車聯(lián)手政府...
- 【財(cái)經(jīng)分析】豆粕市場(chǎng)降溫 飼料...
- 東風(fēng)標(biāo)致回應(yīng)參與湖北汽車補(bǔ)貼:...
- ??禉C(jī)器人IPO獲受理 “??迪?..
- 包鋼股份煉鐵廠:算好“經(jīng)濟(jì)”賬...