国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Regex > 正文

正則表達式詳細基礎實例解析

2020-03-22 17:19:05
字體:
來源:轉載
供稿:網友
html' target='_blank'>正則表達式是我們驗證是經常見到的!下面我和大家一起分享一下如何更簡單的理解正則表達式。
首先,說一下正則名字的命名:

這個單詞我想大家都會眼熟吧!“Regular Expression”。 Regular Expression的“Regular”一般被譯為“正則”、“正規”、“常規”。此處的“Regular”即是“規則”、“規律”的意思,Regular Expression即“描述某種規則的表達式”之意,也就是我們所說的正則表達式。其實正則表達式說白了就是用來規范某種行為的!或者說是一種約束,就好比我們必須遵守交通規則是的。
我個人感覺如果想把正則搞懂、搞明白也不難!只要把其中的一些必須記住的東西外,再加上靈活的運用,這樣就可以了!
好的! 接下來我就來深入到正則的主體,
我們來先看看正則關鍵的東西,如果把這些東西都搞明白了!一般在項目中就沒有問題了!

第一個“/”
這個是俗稱轉義字符,就是把一個字符標記為一個特殊字符或者原義字符。如:“n” 就是匹配“n” 。如果是“/n” 則是換行符。
有人該問了如果我就是想寫“/”這個斜杠呢? 這個也很簡單啊!就直接是這樣寫“//”就可以了!為什么寫兩個“//”呢!就是為了區分。

第二個“^”
這個是俗稱開始字符,就是說準備寫正則了!如果設置了RegExp對象的Multiline屬性,^也匹配“/n”或者“/r”之后的位置。

第三個“$”
這個是俗稱結束字符,也可以說成收尾(很不專業的解釋)!如果設置了RegExp對象的Multiline屬性,$也匹配“/n”或“/r”之前的位置

第四個“*”
這個是匹配前面的子表達式零次或者多次。如:zo*能匹配“z”以及“zo”或者“zoo”。這個“*”也就是相當于{0,}

第五個“+”
這個是匹配前面的子表達式一次或者多次。如:“zo+”能匹配“zo”以及“zoo”或者“zooo”。這個“*”和“+”差不多一個是開始零次一個是一次。這個“+”相當于{1,}。

第六個“?”
這個是匹配前面的子表達式零次或者一次。如:“do(es)?”可以匹配“do”或者“does”。這個問號的意思就是要么匹配零次要么匹配一次!

第七個“{}”
這個符號是匹配多少次的,
1,{n}匹配確定的n次,n是一個非負整數,如:“o{2}”這個的意思就是匹配兩個“oo”, 如: good,food等!不過不能匹配body,因為就一個o!
2,{n,}匹配至少n次,n是個非負整數,如:“o{2,}” 這個的意思就是匹配兩個以上的“oo”,如:good,goood,gooood等。“o{1,}”等價于“o+”。“o{0,}”這個等價于“o*”。
3,{n,m}這個是最少匹配n次最多匹配m次,n和m都是非負整數,其中n<=m。例如:“o{1,3}”匹配body,food,foood。不過不匹配fooood。“o{0,1}”等價于“o?”。這里寫的時候要注意一下,就是逗號和兩個數之間不能有空格。

第八個“?”特殊用法
當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,匹配模式是非貪婪的。所謂非貪婪就是以最少為好,非貪婪模式盡可能少的匹配所搜索的字符串,而默認的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對于字符串“oooo”,“o+?”將匹配單個“o”,而“o+”將匹配所有“o”。

第九個“.”
匹配除換行符“/n”之外的任何單個字符。如果想匹配換行符“/n”再內的任何字符,就使用“(.|/n)”的模式。

第十個“pattern”
這個“pattern”不是很好理解,剛一看比較暈!不過我對這個的理解如下希望對大家有用:
1. ?:pattern 匹配pattern但不獲取匹配結果, 例如:k(?:1|2|3) k在123中任意匹配一個,例子:k1|k2
2. ?=pattern 正向肯定預查 例如:K(?=1|2|3) 當K匹配123中任意一個時 選擇K 例子:k1中的k或者k2中的k
3. ?!pattern 正向否定預查 例如:k(?!1|2|3) 當K不匹配123中的任意一個時 選擇K 例子:不匹配k1中的k,不過可以是k4,k5
4. ?<=pattern 反向肯定預查 例如:(?<=1|2|3)k 當K匹配123中任意一個時 選擇K 例子:1k中的k或者2k中的K
5. ?<!pattern 反向否定預查 例如:(?<!1|2|3)k 當k不匹配123中任意一個時 例子:不匹配1k中的K可以是4k,5k

第十一個“|”
這個符號就是或的意思,比如:“f|good”能匹配“f”或“good”,如果這樣呢“(f|g)ood”則匹配“food”或“good”。

第十二個“[]”
這個符號是字符集和的意思,和“{}”看上去差不多,不過意義可就差多了。

第十三個“()”
這個符號式數組或者是集合

1、[xyz] 匹配所包含的任意一個字符。就是說三個之中選擇一個。例子:“[abc]”可以匹配“company”中的“a”不過不可以匹配“beautiful”因為用到了里面的兩個字母。
2、[^xyz] 這個是負值字符集合,也可以說成是“非”。例子:“[^abc]”可以匹配“drop”等!只要單詞里沒有“abc”這三個字母就可以。
3、[a-z] 字符的范圍。匹配指定范圍內的任意字符。例如,“[a-z]”可以匹配“a”到“z”范圍內的任意小寫字母字符。也可以寫成“[0-9]”這個是匹配0到9直接打數字。
4、[^a-z] 這個我想不用說大家就應該想到是什么意思了,對了!就是你想的那個意思:不在“a”到“z”范圍內的任意字符,一開始我看到這個的時候以為是不在a到z之間的字母呢!我說如果不在a到z之間的字母那只有漢語中的“ü” 了!這個好像讀“喻”!呵呵! 大家看清楚了啊!是字符,不是字母。

下面大家和我一起看看“/”和字母所匹配的特殊含義,
“/b” 這個是匹配一個單詞的邊界,也就是指單詞和空格間的位置。例如,“er/b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。這個我感覺比較好記大家可以這樣記:邊界的邊是b開頭的!
“/B”這個是和“/b”是相反的,匹配非單詞邊界。“er/B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
“/d”這個是用的比較多!我建議大家對這個多記記,這個是匹配數字字符,相當于[0-9]。
“/D”這個也很好理解,也是相反的意思就是說不是數字的,相當于[^0-9]。
“/f”這個是匹配一個換頁符。這個不做過多解釋了!下面的四個也就過多不做過多解釋了。只要記住就可以了!在項目中會用就可以了!
“/n”這個是匹配一個換行符。
“/r”這個是匹配一個回車符。
“/t”這個是匹配一個制表符。
“/v”這個是匹配一個垂直制表符。
“/s”這個匹配任何空字符,匹配任何空白字符,包括空格、制表符、換頁符等等。等價于[ /f/n/r/t/v]。也就是這個把上面的五個都包括了!
“/S”這個是非空白字符等價于[^ /f/n/r/t/v]。
說到這里大家都可能感覺到正則其實就是這些字符嘛!而且有些是可以靠我們的邏輯思維推理出來的,而且有些是重復的,只要大家能夠靈活的運用就可以了。

“/w”這個是匹配包括下劃線的任何單詞字符。等價于“[A-Za-z0-9_]”。這個在實際中用的也挺多的也建議大家多記記這個。

“/W”這個是匹配非單詞數字字符。等價于“[^A-Za-z0-9_]”。

好的!基本上要記得就是這么多了!這些可能有些正則高手該說了“你這個根本不全啊?” 我先提前解釋一下吧,我所寫的只是一些基礎的,在項目中常見的,比較實用的,基本上這些在項目中就可以運用自如了。
接下來呢,和大家做一些實質性的東西,和大家一起解析一些正則表達式。
比如這個正則:^([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$
這個正則我想對正則高手來說一看就知道是什么了。當然一些邏輯思維比較強的看兩眼也就知道這個是什么了,沒錯就是時間正則。

OK 我們來解析一下這個正則從這個“^”開始,“([0-1]?[0-9]|2[0-3])”是個組,“[0-1]?”這個問號的作用是0或1最多有零個或者一個,“[0-9]”0至9之間任意一個數,“|”這個是“或”的意思,就是說不是“[0-1]?[0-9]”就是“2[0-3]”,“2[0-3]” 這個是前面的2就是代表2,后面0至3是0到3之間任意一個數,“:”就是代表“:”,“([0-5][0-9])”也是個組,“[0-5]”是0到5之間任意一個數,“[0-9]”是0到9之間任意一個數,“:”也是本意,“([0-5][0-9])”也是個組,“[0-5]”是0到5之間任意一個數,“[0-9]”是0到9之間任意一個數,“$”這個是結束符。
再和大家解析一個小數

比如:^[1-9]+/d*(/.[0-9]{1,2})?|0(/.[0-9]{1,2})?$
“^”是開始符,“[1-9]+”其中“+”的意思是1到9之間最少有一個或者多個,“/d*”這個“/d”是數字,這個“*”是最少有零個數字或者有多個數字,“(/.[0-9]{1,2})?”這個組里面“/.”是原意點,“[0-9]{1,2}” 0到9之間有一個或者有兩個數字,后面這個問號“?”意思是有零個或者一個它“(/.[0-9]{1,2})”。“|” 是要么是“[1-9]+/d*(/.[0-9]{1,2})?”要么是“0(/.[0-9]{1,2})?”。“0(/.[0-9]{1,2})?”這個里面的0是原意,“(/.[0-9]{1,2})?”這個組里面“/.”是原意點,“[0-9]{1,2}” 0到9之間有一個或者有兩個數字,后面這個問號“?”意思是有零個或者一個它“(/.[0-9]{1,2})”。

下面我例舉出一些常見的正則表達式來給大家說說:

^[1-9]/d*$ //匹配正整數   
^-[1-9]/d*$ //匹配負整數   
^-?[1-9]/d*$ //匹配整數   
^[1-9]/d*|0$ //匹配非負整數(正整數 + 0)   
^-[1-9]/d*|0$ //匹配非正整數(負整數 + 0)   
^[1-9]/d*/./d*|0/./d*[1-9]/d*$ //匹配正浮點數   
^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$ //匹配負浮點數   
^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$ //匹配浮點數   
^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$ //匹配非負浮點數(正浮點數 + 0)   
^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$ //匹配非正浮點數(負浮點數 + 0)
^[a-zA-Z][a-zA-Z0-9_]{4,15}$ //匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線)
^/s*|/s*$ //匹配首尾空白字符的正則表達式
/n/s*/r //匹配空白行的正則表達式
[^/x00-/xff] //匹配雙字節字符(包括漢字在內)
[/u4e00-/u9fa5] //匹配中文字符的正則表達式

用戶名
^[a-z0-9_-]{3,16}$

密碼
^[a-z0-9_-]{6,18}$

十六進制值
^#?([a-f0-9]{6}|[a-f0-9]{3})$

電子郵箱
^([a-z0-9_/.-]+)@([/da-z/.-]+)/.([a-z/.]{2,6})$
^[a-z/d]+(/.[a-z/d]+)*@([/da-z](-[/da-z])?)+(/.{1,2}[a-z]+)+$

URL
^(https?:////)?([/da-z/.-]+)/.([a-z/.]{2,6})([///w /.-]*)*//?$

IP 地址
((2[0-4]/d|25[0-5]|[01]?/d/d?)/.){3}(2[0-4]/d|25[0-5]|[01]?/d/d?)


^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

HTML 標簽
^<([a-z]+)([^<]+)*(?:>(.*)<///1>|/s+//>)$

以上便是關于正則表達式的一些基礎知識配合實際例子的講解,希望可以幫助到對正則表達式感到迷惑的同學,如有錯誤請指出。

更多相關問題請訪問PHP中文網:PHP視頻教程

以上就是正則表達式詳細基礎實例解析的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产麻豆精品视频一区二区| 男人天堂v视频| 亚洲精品在线播放视频| 国产三区四区在线观看| 国产一区二区影视| 国产视频精选在线| 在线观看wwww| 国产理论片免费观看| 午夜视频99| 在线视频婷婷| 欧美视频免费一区二区三区| 成人免费一区二区三区视频网站| 国产乱人视频免费播放| 在线视频xx| 粉嫩av一区| 国产98在线| 免费看ww视频网站入口| 国产美女在线观看| 精品美女在线观看视频在线观看| 亚洲视频日韩| 国产特黄在线| 国产在线一二| 99中文字幕一区| 91超碰国产在线| 在线观看av中文| 国产一起色一起爱| 日本成人网址| 在线免费观看你懂的| 国产美女一区视频| www.色婷婷| 在线播放www| 精品国产一区二区三区四区阿崩| 丁香花在线电影小说观看 | 亚洲夜夜综合| 国产写真视频在线观看| 麻豆国产视频| 超碰97在线免费观看| 国产变态拳头交视频一区二区| 国产中文字幕网| 国产中文字幕在线观看| 欧美亚洲天堂| 人人干在线视频| 任你操视频在线观看| 四虎国产精品永久| 久热中文字幕在线观看| www在线视频观看| 免费av在线| 国产尤物视频在线| 国产精品臀控福利在线观看| 国产乱妇乱子在线播视频播放网站| 久久国产精品久久久久久小说| 四虎国产精品永久在线| 免费国产在线视频| 最新天堂资源在线资源| 最好看更新中文字幕| 国产精品久久久久久久牛牛| 97一区二区三区| 午夜影院免费看| 久久久久久久久免费视频| 国产乱码在线| 2018狠狠干| 欧洲有码在线视频| 国产一卡2卡3卡4卡网站免费| 国产一级二级三级在线观看| 国产黄色在线网站| 亚洲精品影院在线| 超碰在线网址| 国产www在线观看| www.91在线播放| 国产三级在线| 青草视频在线播放| 91欧美在线视频| 噜噜噜噜噜在线视频| 午夜伦全在线观看| av在线网页| 国产日本视频| 天天操中文字幕视频| 国产偷激情在线| 福利视频网址导航| 三级小说一区| 91在线高清| 国产精品日日爱| 国产中文字幕av| 免费黄网站在线观看| 亚洲图区综合| 91蜜桃在线视频| 午夜免费福利在线观看| 欧美人成在线观看网站高清| 国产寡妇树林野战在线播放| 黄网站在线观看高清免费| 国产福利三区| 国产偷倩在线播放| 国产卡1卡2卡三卡在线| a级片国产精品自在拍在线播放| 国产午夜在线| 国产视频精品久久| 狠狠色丁香婷婷| 国产在线一二三区| 好男人免费精品视频| 欧美精品se| 亚洲欧美精选| 色悠久久久久综合网小说| 在线观看精品一区二区三区| 中文在线视频| 亚洲欧美日韩成人网| 精品卡1卡2卡三卡免费网站| 国产图片综合| 精品麻豆视频| xxxx视频在线| 天堂中文资源在线| 国产激情网址| 精品视频三区| 免费精品国产自产拍观看| 狠狠色综合久久婷婷| 天天操天天艹| 国产二级片在线| 亚洲成av人影片在线观看 | 在线一区二区三区精品| 国产羞羞视频在线播放| 最近中文字幕在线中文视频 | 中文字幕第一页在线| 国产91足控脚交在线观看| 2019年中文字幕| 日本在线观看| 国产乱视频在线观看播放| 中文字幕视频免费在线观看| 国产精品日日爱| 免费影视观看网站入口| 国产女呦网站| av亚洲在线| 国产九九九九| 国产精品久久久久久福利| 国产一区二区三区美女秒播 | 国产人成精品| www.国产精品.com| 九九色在线观看| 国产精品久久一区二区三区不卡| 亚洲成人国产综合| 最近中文字幕大全中文字幕免费| 91高清国产| 九九热在线免费视频| 伊人福利在线| 国产黄a三级三级三级av在线看| 日本啊v在线| 91桃色在线| 国产精品视频一区二区三区麻豆 | 天海翼中文字幕| 五月婷婷导航| 黄网在线免费| 在线影视一区| 国自产拍在线网站网址视频| 99在线播放| 国产成人夜间影院在线观看| 国产真实伦在线观看| sese一区| 在线观看中文字幕一区| 国产三级视频在线看| 久热免费在线视频| av中文在线| 精品日韩av| 国产精品视频一区二区久久| 尤物视频免费在线观看| 国产在线观看色| 久精品在线观看| 男人天堂亚洲| 国产精品一区在线看| 狂野欧美性猛交xxxx乱大交| 欧美日韩亚洲国内综合网 | 香蕉视频免费在线播放| av中文天堂在线| wwww在线观看免费视频| 四虎成人免费| 国产中文在线观看| 欧美96在线| 五月婷婷在线视频| 精品一区二区在线欧美| 精品美女在线观看视频在线观看| 国产www网站| av在线第一页| 午夜伦全在线观看| 在线中文字幕视频观看| 操操操综合网| 国产精品人人| www.jizz在线观看| 天天操天天艹| 在线黄色国产电影| 高清视频一区二区三区四区| 丁香综合五月| 亚洲图区综合| 最近中文字幕av免费高清| 国产精品白浆视频免费观看| 四虎国产精品永久地址998| 国产字幕在线看| 亚洲综合在线免费| 国产日产精品久久久久久婷婷| 精品176二区| 中文字幕网站视频在线| 精品国产二区三区| 国产三级在线看| 91av久久|