溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

正則表達(dá)式原理及常用示例是什么

發(fā)布時(shí)間:2022-01-10 00:24:07 來源:億速云 閱讀:154 作者:柒染 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)正則表達(dá)式原理及常用示例是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、正則的含義

正則表達(dá)式就是用來操作字符串的一種邏輯公式

二、正則表達(dá)式的應(yīng)用場景

  • 數(shù)據(jù)分析時(shí)數(shù)據(jù)獲取的文本篩選

  • 進(jìn)行爬蟲時(shí),網(wǎng)頁數(shù)據(jù)的匹配

  • 寫前端代碼的時(shí)候,用戶輸入數(shù)據(jù)的驗(yàn)證

  • 測試人員對請求結(jié)果的數(shù)據(jù)驗(yàn)證

  • 批量文本編輯,比如Sublime Textnodepad++、EditPlus等記事本軟件全都支持正則表達(dá)式的使用

三、常用的格式校驗(yàn)

  • 郵箱驗(yàn)證

  • IP地址驗(yàn)證

  • 電話號碼驗(yàn)證

  • 身份證號碼驗(yàn)證

  • 密碼強(qiáng)度驗(yàn)證

  • 網(wǎng)址驗(yàn)證

  • 漢字驗(yàn)證 [\u4e00-\u9fa5]

  • ......

  • 凡是有一定規(guī)律的,批量的數(shù)據(jù)獲取,都可以使用正則表達(dá)式來完成

四、元字符

字符說明
.代表的是換行符以外的任意字符。 換行符是:(不同的操作系統(tǒng)有不同的換行符) \n \r\n
\w匹配字母、數(shù)字、下劃線、漢字的一個(gè)字符
\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 匹配第一個(gè)

  • match 匹配開頭的

八、貪婪與非貪婪

  • 貪婪的意思是盡可能多的匹配

  • 非貪婪的意思就是盡可能少的匹配

  • 非貪婪操作符是問號:'符號?'

  • ?號代表的是重復(fù)0次或者是1次,再加一個(gè)問號,代表的是非貪婪操作,那么最后就只匹配0次

分支條件匹配:

使用 | 來分隔開不同的正則表達(dá)式,代表著 條件1 或 條件2 或條件3 ......

九、零寬斷言

  • 匹配"正則表達(dá)式reg"前邊的位置 (?=reg)

  • 匹配"正則表達(dá)式reg"后邊的位置 (?<=reg)

  • 匹配后邊跟的不是"正則表達(dá)式reg"的位置 (?!reg)

  • 匹配前邊不是"正則表達(dá)式reg"的位置 (?<!reg)

十、常用的實(shí)用正則表達(dá)式

  •   輸入零和非零開頭的數(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"*$。

  •   輸入長度為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}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字符、數(shù)字和下劃線。

  •   驗(yàn)證是否含有^%&&rsquo;,;=?$""等字符:"[^%&&rsquo;,;=?$"x22]+"。

  •   只能輸入漢字:"^["u4e00-"u9fa5]{0,}$"

  •   驗(yàn)證Email地址:"^"w+([-+.]"w+)*@"w+([-.]"w+)*"."w+([-.]"w+)*$"。

  •   驗(yàn)證InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。

  •   驗(yàn)證電話號碼:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。

  •   驗(yàn)證身份證號(15位或18位數(shù)字):"^"d{15}|"d{18}$"。

  •   驗(yàn)證一年的12個(gè)月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。

  •   驗(yàn)證一個(gè)月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。

上述就是小編為大家分享的正則表達(dá)式原理及常用示例是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI