溫馨提示×

溫馨提示×

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

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

秒懂正則表達(dá)式

發(fā)布時(shí)間:2020-07-01 20:17:30 來源:網(wǎng)絡(luò) 閱讀:529 作者:lipeiyong 欄目:web開發(fā)

正則表達(dá)式的功能很強(qiáng)大,但是他的語法往往難以學(xué)會和掌握,即使學(xué)會了也容易忘記,即掌握的不深刻。下面我就試圖通過簡單的講解讓大家迅速深刻的掌握正則表達(dá)式。本文以javascript中的正則表達(dá)式語法為范例講解。

一、從最簡單的表達(dá)式開始

所謂最簡單就是沒有任何算符,表達(dá)式就是目標(biāo)字符串。

示例文本:The company denied using a "hunger sales" strategy and said the products will be delivered starting April 8.

匹配company:/company/
匹配products:/products/

二、方括號[]的使用

含義:方括號中整體代表一個(gè)字符,所代表的字符就是方括號中所列出的字符中的其中一個(gè)。

示例文本:A teacher began his class by holding up a glass with some water in it. 

同時(shí)匹配class和glass:/[cg]lass/g   

注:表達(dá)式末尾的g代表全局匹配,既global

三、連接符-的使用

含義:連接符表示范圍,連接符左右兩端的字符為范圍的第一個(gè)和最后一個(gè)字符。

示例文本:Activity set to honor PLA Navy birthday.

匹配所有的大寫字母:
1:/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/g
2:/[A-Z]/g

四、脫字符^的使用

含義:脫字符放在方括號內(nèi)的第一個(gè)位置,表示不匹配方括號中列出的字符。

示例文本:Activity set to honor PLA Navy birthday.

與任何不是字符A的字符匹配:/[^A]/g
與任何不是大寫字母的字符匹配:/[^A-Z]/g

五、問號?的使用

含義:問號前面的字符有或無。

示例文本:color is equal to colour.

同時(shí)匹配color和colour:/colou?r/g

*六、星號的使用**

含義:星號前面的字符不出現(xiàn)或出現(xiàn)若干次。

示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!

匹配ba!  baaa!  b!  baaaaaaa!等的表達(dá)式:/ba*!/g 

匹配ba!  baaa!  baabaabb!  baaaaaaa!  abbbaabbab!的表達(dá)式:/[ab]*!/g

七、加號+的使用

含義:加號前面的字符出現(xiàn)一次或若干次,即至少出現(xiàn)一次。

示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!

將 /ba*!/g 改為 /ba+!/g 的匹配結(jié)果是:ba!  baaa!  baaaaaaa!

八、點(diǎn)號 . 的使用


 點(diǎn)號是通配符,表示與任何單個(gè)字符(回車符除外)相匹配。

 經(jīng)常與星號結(jié)合使用,.*可以表示任意字符串。

示例文本:The company denied using a "hunger sales" strategy and said the products will be delivered starting April 8.

匹配using到products的字符串:/using.*products/g

九、常用錨號的使用

含義:錨號是讓表達(dá)式匹配文本的特定位置的符號。

    示例文本:The apple is Green.the other one is also green

    脫字符(^),表示匹配行首
    例如匹配行首的The:/^the/ig
  注:表達(dá)式后面的i字母表示忽略大小寫。

    美元符($),表示匹配行尾
   例如匹配行尾的green:/green$/ig

    詞界(\b)
   例如要匹配單詞the,而不是other中包含的‘the’: /\bthe\b/ig

十、析取算符|與括號()的使用

含義:析取算符表示或關(guān)系;括號中是子正則表達(dá)式。

示例文本:A cat is talking with a dog,guppies are the complex form of guppy.

匹配cat、dog和guppy的表達(dá)式:/cat|dog|guppy/g

匹配guppy與guppies的表達(dá)式:/gupp(y|ies)/g

十一、計(jì)數(shù)符的使用

含義:計(jì)算符來規(guī)定它前面的字符或子表式出現(xiàn)的次數(shù)。

示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!

星號*:表示前面的字符或子表達(dá)式出現(xiàn)零個(gè)或多個(gè)   /ba*!/g

加號+:表示前面的字符或子表達(dá)式出現(xiàn)一個(gè)或多個(gè)   /ba+!/g

問號?: 表示前面的字符或子表達(dá)式出現(xiàn)零個(gè)或一個(gè)(出現(xiàn)或不出現(xiàn))  /ba?!/g

{n}:表示前面的字符或子表達(dá)式出現(xiàn)n個(gè)   
例如a要出現(xiàn)3次:/ba{3}!/g

{n,m}: 表示前面的字符或子表達(dá)式出現(xiàn)n到m個(gè)  
例如a出現(xiàn)的次數(shù)要在3到9之間:/ba{3,9}!/g

{n,}: 前面的字符或子表達(dá)式至少出現(xiàn)n個(gè)   /ba{5,}!/g
例如a至少要出現(xiàn)5次:/ba{5,}!/g

另外可以看博主視頻課:秒懂正則表達(dá)式

向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