您好,登錄后才能下訂單哦!
正則表達(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á)式
免責(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)容。