真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

正則表達(dá)式簡明筆記-創(chuàng)新互聯(lián)

正則表達(dá)式描述了一種字符串的匹配模式,可以用來檢查一個(gè)串是否含有某子串,或是特定字符串是否匹配特定規(guī)則.

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括亭湖網(wǎng)站建設(shè)、亭湖網(wǎng)站制作、亭湖網(wǎng)頁制作以及亭湖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,亭湖網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到亭湖省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

換句話說就是記錄文本規(guī)則的一段代碼。其目的在于精確地過濾字符,找到想要的字符。

歷史:正則表達(dá)式的第一個(gè)實(shí)用應(yīng)用程序就是 Unix 中的 qed 編輯器 此后便被廣泛用在文本搜索和匹配上

結(jié)構(gòu):正則表達(dá)式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式

第一小節(jié):元字符

下面是一些常見的元字符

\b 代表單詞的開頭或結(jié)尾,即單詞的分界.匹配的是一個(gè)位置。 'en' 很多單詞都包含,women men engage ,如果想要準(zhǔn)確地找'en'這個(gè)單詞,應(yīng)當(dāng)使用\b來表達(dá)分界,例如:\ben\b

\d 匹配數(shù)字 例如 :0~9

\s 匹配任意空白字符

\w 匹配字母數(shù)字或下劃線或漢子 例如:a-z或0~9或_或漢子

. 匹配除換行符以外的任意字符

\n 換行符

^ 匹配字符串的開始,多用在輸入驗(yàn)證

$ 匹配字符串的結(jié)束,多用在輸入驗(yàn)證

*  代表數(shù)量,,指定前邊的內(nèi)容可以連續(xù)重復(fù)使用任意次

學(xué)習(xí)正則的表達(dá)式最好的方法是從例子學(xué)習(xí),下面將介紹大量的實(shí)例

eg : \bhi\b.*\blucy\b  解釋:顯示一個(gè)單詞hi,中間跟任意字符,不包括換行,最后是lucy

eg: 0\d\d-\d\d\d\d\d\d\d  解釋:以0開頭然后兩個(gè)任意數(shù)字然后-然后8位任意數(shù)字

為了避免煩人的重復(fù)可以{數(shù)字}來表達(dá)次數(shù),有關(guān)次數(shù)在后文會(huì)詳細(xì)介紹

eg: 0\d{2}-\d{8}  解釋:0開始然后是兩位數(shù)字,然后是-,然后是8位數(shù)字,表示必須連續(xù)出現(xiàn)的匹配次數(shù),其中-并不是元字符 ,只是普通字符,匹配它本身而已

eg: ^\d{5,12}$  解釋:以數(shù)字開頭,數(shù)字結(jié)尾,長度5到12位

第二小節(jié):字符轉(zhuǎn)義 \

如果想查詢元字符.*本身,你沒辦法指定他們,這時(shí)候就要使用\來取消這些字符的特殊意義,因此,使用\.\* ,查找‘\’本身也要轉(zhuǎn)義\\

eg: www.baidu.com  www\.baidu\.com

eg:c:\\user  c:\\\\user

第三小節(jié):重復(fù)又稱限定符 {}

類似 *,+,{2},{2,5} 都是表示次數(shù)的方式。

*:多次或0次

+:1次或多次

?:0次或1次

{n}:n次

{n,}n次或多次

{n,m}:n-m次

eg: window\d+  解釋:windows后跟一個(gè)或多個(gè)數(shù)字

eg: ^\d{m,n}$    解釋:m到n位數(shù)字

eg: \ba\w+y\b   解釋: 一個(gè)以a開頭,中間是1個(gè)或多個(gè)任意字符,然后是以y結(jié)尾的單詞  eg: any ,

第四小節(jié):字符類[]

如果想要查找數(shù)字字母,空白很簡單因?yàn)橛衆(zhòng)w \d \s ,但是對于預(yù)定義字符集沒有辦法。這時(shí)可以自己定義使用字符類

[a-z]  小寫字母a到z任意一個(gè),[A-Z]大寫字母A到Z任意一個(gè)。[0-9]任意一個(gè)數(shù)字,其效果與\d類似。[a-z0-9A-Z]等同于\w。

eg:[aeiou]                     解釋:匹配任意一個(gè)英文元音字母

eg: [,.!]                        解釋:匹配任意一個(gè)標(biāo)點(diǎn)

eg:^[a-zA-Z][a-zA-Z0-9_]{4,15}$    解釋:判斷帳號是否合法(字母開頭,然后是字母數(shù)字下劃線結(jié)尾,出現(xiàn)4到15次)

eg: ^[a-zA-Z]\w{5,17}$           解釋: 匹配密碼(以字母開頭不區(qū)分大小寫,然后是字母數(shù)字下劃線結(jié)尾 ,出現(xiàn)5到17次,與上例異曲同工)

eg:[\u4e00-\u9fa5]             解釋: 匹配中文字符的正則表達(dá)式

第五小節(jié):分支條件 |

分支條件在正則表達(dá)式里指的是有幾種匹配規(guī)則 ,如果滿足任意一種規(guī)則都匹配

用|把不同的規(guī)則隔開,

注意:使用分支條件是有順序的,優(yōu)先匹配到最先匹配到的分支,匹配分之是將會(huì)從左到右如果滿足了某個(gè)分之就不再管其他分支 。

eg : \d{5}-\d{4}|\d{5}        解釋:表達(dá)式匹配5位數(shù)字然后-然后4位數(shù)字,或者直接5位數(shù)字,

如果把分支順序改一下則是

eg:\d{5}|\d{5}-\d{4}         解釋: 如果匹配到5位數(shù)字,則后面的分支就不再進(jìn)行匹配。

eg : 0\d{2}-\d{8}|0\d{3}-\d{7}  解釋:匹配一種三位區(qū)號8位本地號碼或是一種4位區(qū)號,7位本地號碼

eg:^\d{15}|\d{18}$         解釋:×××號(15位、18位數(shù)字), 以數(shù)字開頭,數(shù)字結(jié)尾,15位數(shù)字\d{15}或18位數(shù)字\d{18}

eg:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

解釋:手機(jī)號碼。遇到較長的正則表達(dá)式記住要拆開分解來看。先不看括號里的

      大框架是^()\d{8}$ ()里的某些東西開頭,數(shù)字結(jié)尾,共8位數(shù)字,然后是()里的內(nèi)容,

        就是對手機(jī)號 前三位的特殊性進(jìn)行規(guī)則匹配                                               13[0-9],14[5|7],15[0|1|2|3|5|6|7|8|9],18[0|1|2|3|5|6|7|8|9] 就是四個(gè)分支而已。

第六小節(jié):分組()

正則表達(dá)式用處最多的就是()了,()在正則表達(dá)式里成為分組。

分組常常和重復(fù)即限定符連起來一起使用。用以表達(dá)括號里的東西作為一個(gè)整體重復(fù)出現(xiàn)多少次。

eg:(\w+\d?){3}  解釋:數(shù)字字母下劃出現(xiàn)一次或多次然后出現(xiàn)0次或1次一個(gè)數(shù)字,這樣的整體出現(xiàn)3次。

eg: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

解釋:Email地址  開頭^是一次或多次+任意字符\w分組(字符類[-+.]出現(xiàn)-+.任意一個(gè),
         然后是一次或多次\w) 這個(gè)分組出現(xiàn)0次或多次,  然后是@任意多個(gè)\w接著又是

         分組([-.]\w+)出現(xiàn)*次,然后是出現(xiàn)一個(gè).然后是\w+最后是結(jié)尾$分組([-.]\w+)*

      email的標(biāo)準(zhǔn)是 用戶名@郵箱域名.com

         有的還會(huì)有. eg:zhangsan@sina.com  zhangsan.Mr.kk@sina.com

eg: ^((0?[1-9])|((1|2)[0-9])|30|31)$     解釋:一個(gè)月的31天(01~09和1~31)

eg: (\d{1,3}\.){3}\d{1,3}                         解釋:簡單的ip地址匹配  1到3位數(shù)字然后. 這個(gè)組合出現(xiàn)3次最后再加一個(gè)1到3位的數(shù)字 eg:192.0.0.1

eg:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

 解釋:完整的ip4地址匹配 拆解來看結(jié)構(gòu)是(){3}(),分組作為一個(gè)整體出現(xiàn)3次,

          然后又是一個(gè)分 組。 括號里(2[0-4]\d|25[0-5]|[01]?\d\d?)繼續(xù)拆分其實(shí)就

          是三個(gè)分支,2[0-4]\d  200-249,25[0-5]  250-255,

      [01]?\d\d?    0-9或者0-99或者199 [01] 匹配任何一個(gè)數(shù)字0,1

      總體來看就是滿足這三個(gè)分支任意一個(gè)都行,然后出現(xiàn)一個(gè).這樣的分組出現(xiàn)三次,

          最后一個(gè)分組 一樣就是不帶.這 樣就好理解多了。

注意:如果在正則表達(dá)式里想用()而不是分組需要轉(zhuǎn)義。\(\) 代表)

eg:  \(?0\d{2}\)?[ -]?\d{8}|0\d{2}[ -]?\d{8}

(011)-12345678  011-12345678  011 12345678  01112345678

第七小節(jié):反義

eg: 想查找除了數(shù)字以外任意字符都行 這時(shí)需要用到反義

\W :匹配任意不是字母,數(shù)字,下劃線,漢子的字符 大寫W

\S匹配任意不是空白的字符  大寫S

\D匹配任意非數(shù)字的字符  大寫D

\B匹配不是單詞開頭或結(jié)束的位置  大寫B(tài)

[^x]匹配除了x的任意字符

[^aeiou]匹配除了aeiou這幾個(gè)字母以外的任意字符

\S+匹配 1個(gè)或多個(gè)不是空白的字符

eg:]+>  解釋:匹配用尖括號括起來的以a開頭除了>的一個(gè)或多個(gè)字符,即:匹配用尖括號括起來的以a開頭的字符串

第八小節(jié):正則表達(dá)式的運(yùn)算符優(yōu)先級

正則表達(dá)式從左到右進(jìn)行計(jì)算,并遵循優(yōu)先級順序,這與算術(shù)表達(dá)式非常類似。

相同優(yōu)先級的從左到右進(jìn)行運(yùn)算,不同優(yōu)先級的運(yùn)算先高后低。下表從最高到最低說明了各種正則表達(dá)式運(yùn)算符的優(yōu)先級順序:

運(yùn)算符描述
\轉(zhuǎn)義符
(), (?:), (?=), []圓括號和方括號
*, +, ?, {n}, {n,}, {n,m}限定符
^, $, \任何元字符、任何字符定位點(diǎn)和序列(即:位置和順序)
|替換,"或"操作

第九小節(jié):后向引用 (exp) ,(?exp),(?''exp)

百科下來的術(shù)語是這樣解釋:使用小括號指定一個(gè)子表達(dá)式后,匹配這個(gè)子表達(dá)式的文本(也就是此分組捕獲的內(nèi)容)可以在表達(dá)式或其它程序中作進(jìn)一步的處理。默認(rèn)情況下,每個(gè)分組會(huì)自動(dòng)擁有一個(gè)組號,規(guī)則是:從左向右,以分組的左括號為標(biāo)志,第一個(gè)出現(xiàn)的分組的組號為1,第二個(gè)為2,以此類推。

后向引用 用于重復(fù)搜索前面某個(gè)分組匹配的文本

其核心就是捕獲

(exp) exp匹配到的東西放到默認(rèn)組里,后續(xù)用這個(gè)組里匹配到的東西 就用\1

(?exp) exp匹配到的東西放到名為name的組里,后續(xù)用這個(gè)組里匹配到的東西 就用 \k

eg: 第一種寫法  \b(\w+)\b\s+\1\b  解釋:\1代表分組1匹配的文本, 首先是一個(gè)單詞然后是單詞開始和結(jié)束之間的多余1個(gè)的字母或數(shù)字會(huì)被捕獲到編號為1的分組,然后是1個(gè)或幾個(gè)空白字符,最后是分組1中捕獲的內(nèi)容, eg summer summer

   第二種寫法  \b(?\w+)\b\s+\K\b

   第三種寫法   \b(?'word'\w+)\b\s+\K'word'\b

eg: 第一種寫法  \b(a\w+y)\b\s+\1\b  解釋:單詞axxy然后被捕獲放到1號組里,然后\s空格,然后是調(diào)用1號組捕獲到的東西,可能就是 any  any

   第二種寫法  \b(?a\w+y )\b\s+\K\b

   第三種寫法   \b(?'hehe'a\w+y )\b\s+\K'hehe'\b

第十小節(jié):零寬斷言(?=exp),(?<=exp)

所謂斷言就是表達(dá)式exp

零寬斷言就是查找指定某些內(nèi)容之前或之后的內(nèi)容而不包括表達(dá)式部分

(?=exp) 零寬度正預(yù)測先行斷言.斷言自身出現(xiàn)的位置之后能匹配的表達(dá)式

eg:   \b\w+(?=ing\b)   解釋:匹配\w+之后以ing結(jié)尾的單詞但不包括ing的部分  eating 去掉ing的部分 即 eat

eg: \b[aeiou]\w+(?=ed\b)  解釋: 匹配元音字母的任意一個(gè)開頭,然后是任意字符,1次或多次,最后是以ed結(jié)尾的單詞但不包含ed的部分, apped 去掉ed  即app

(?<=exp) 零寬度正回顧后發(fā)斷言,它斷言自身出現(xiàn)的位置的前面能匹配表達(dá)式exp

(?<=\pre)\w+\b 匹配單詞以re開頭但不包括re的部分 Prefixes 即 fixes

eg:(?<=\s)\d+(?=\s)

解釋:(?<=\s) 零寬斷言,匹配1個(gè)或多個(gè)數(shù)字,前面是(?<=\s) 但不包含空格的部分,后面是(?=\s) ,但不包含空格的部分。即以空白符間隔的數(shù)字

后向引用和零寬斷言連起來使用

eg:(?<=<(\w+)>).*(?=<\/\1>)等價(jià)于 (?<=<(?

解釋:匹配不帶屬性的html標(biāo)簽里的內(nèi)容  匹配.*前面是<1個(gè)或多個(gè)\w>,但不包含這部分,
  后面是<轉(zhuǎn)義\/,捕獲前面分組(\w+)的內(nèi)容 >但不包含這部分

 eg:

xxxxx

,匹配的就是xxx這部分

第十一小節(jié):負(fù)向零寬斷言(?!exp),(?

(?!exp)零寬度負(fù)預(yù)測先行斷言

斷言此位置的后面不能匹配表達(dá)式exp

eg :\d{3}(?!\d)  解釋:匹配三位數(shù)字,后面不能是數(shù)字

eg:[1-9]\d{5}(?!\d)  解釋:匹配開頭是1到9任意一位,然后是5位數(shù)字,后面不能是數(shù)字。中國郵政編碼: (中國郵政編碼為6位數(shù)字)

(?

eg:  \b ((?)\w)+\b  解釋:匹配不包含元音連續(xù)字符串的單詞

eg: (?解釋:匹配前面不是數(shù)字的字符

第十二小節(jié):貪婪與懶惰

貪婪

正則表達(dá)式在滿足整體表達(dá)式的規(guī)則下會(huì)貪婪盡可能多的匹配

eg: qweqweqwe   q.*e    匹配以q開始,以e結(jié)束最多字符

會(huì)匹配到 qweqweqwe  而不是 qweqwe  或者qwe

懶惰

滿足整條表達(dá)式時(shí)盡可能少的匹配,

在后面加一個(gè)?即可

*? :重復(fù)任意次,但盡可能少重復(fù)

+? :重復(fù)1次或多次,,但盡可能少重復(fù)

?? :重復(fù)0次或1次,但盡可能少重復(fù)

{n,}?  :重復(fù)n次以上,但盡可能少重復(fù)

{n,m}?:重復(fù)n到m次,但盡可能少重復(fù)

eg:  qweqweqwe  q.*?e  匹配以q開始,以e結(jié)束最短字符.

會(huì)匹配到 qwe

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞標(biāo)題:正則表達(dá)式簡明筆記-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/dcepsi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部