說(shuō)明:如果您有任何疑問(wèn)或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732
全網(wǎng)監(jiān)測(cè)海量數(shù)據(jù)按需發(fā)布監(jiān)測(cè)預(yù)警
實(shí)時(shí)把握輿情動(dòng)態(tài)精準(zhǔn)追溯信息源頭
正規(guī)匹配也就是正規(guī)表達(dá)式,是計(jì)算機(jī)科學(xué)當(dāng)中的一個(gè)概念,也是在學(xué)習(xí)計(jì)算機(jī)過(guò)程當(dāng)中必須要掌握的一個(gè)知識(shí)點(diǎn)。所以今天我們就來(lái)看一看,與正則匹配有關(guān)的相關(guān)知識(shí),希望大家對(duì)這一個(gè)概念有一定的了解。
正則匹配——正則匹配是什么
正則表達(dá)式,又稱規(guī)則表達(dá)式。(英語(yǔ):RegularExpression,在代碼中常簡(jiǎn)寫(xiě)為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本。
許多程序設(shè)計(jì)語(yǔ)言都支持利用正則表達(dá)式進(jìn)行字符串操作。例如,在Perl中就內(nèi)建了一個(gè)功能強(qiáng)大的正則表達(dá)式引擎。正則表達(dá)式這個(gè)概念最初是由Unix中的工具軟件(例如sed和grep)普及開(kāi)的。正則表達(dá)式通??s寫(xiě)成“regex”,單數(shù)有regexp、regex,復(fù)數(shù)有regexps、regexes、regexen。
正則匹配如何使用
正則的常用方法
1test():在字符串中查找符合正則的內(nèi)容,若查找到返回true,反之返回false.
用法:正則.test(字符串)
例子:判斷是否是數(shù)字
varstr=’374829348791′;
varre=/\D/;//\D代表非數(shù)字
if(re.test(str)){//返回true,代表在字符串中找到了非數(shù)字。
alert(‘不全是數(shù)字’);
}else{
alert(‘全是數(shù)字’);
}
正則表達(dá)式中有很多符號(hào),代表著不同的意思,用來(lái)讓我們?nèi)ザx不同的規(guī)則,比如上面\D,還有下面的這些:
\s:空格
\S:非空格
\d:數(shù)字
\D:非數(shù)字
\w:字符(字母,數(shù)字,下劃線_)
\W:非字符例子:是否有不是數(shù)字的字符
(下面會(huì)根據(jù)例子,依次講一些常用的字符,最后再作總結(jié)。)
2search():在字符串搜索符合正則的內(nèi)容,搜索到就返回出現(xiàn)的位置(從0開(kāi)始,如果匹配的不只是一個(gè)字母,那只會(huì)返回第一個(gè)字母的位置),如果搜索失敗就返回-1
用法:字符串.search(正則)
在字符串中查找復(fù)合正則的內(nèi)容。忽略大小寫(xiě):i——ignore(正則中默認(rèn)是區(qū)分大小寫(xiě)的如果不區(qū)分大小寫(xiě)的話,在正則的最后加標(biāo)識(shí)i)
例子:在字符串中找字母b,且不區(qū)分大小寫(xiě)
varstr=’abcdef’;
varre=/B/i;
//varre=newRegExp(‘B’,’i’);也可以這樣寫(xiě)
alert(str.search(re));//1
match()在字符串中搜索復(fù)合規(guī)則的內(nèi)容,搜索成功就返回內(nèi)容,格式為數(shù)組,失敗就返回null。
用法:字符串.match(正則)
量詞:+至少出現(xiàn)一次匹配不確定的次數(shù)(匹配就是搜索查找的意思)
全局匹配:g——global(正則中默認(rèn),只要搜索到復(fù)合規(guī)則的內(nèi)容就會(huì)結(jié)束搜索)
例子:找出指定格式的所有數(shù)字,如下找到123,54,33,879
varstr=’haj123sdk54hask33dkhalsd879′;
varre=/\d+/g;//每次匹配至少一個(gè)數(shù)字且全局匹配如果不是全局匹配,當(dāng)找到數(shù)字123,它就會(huì)停止了。就只會(huì)彈出123.加上全局匹配,就會(huì)從開(kāi)始到結(jié)束一直去搜索符合規(guī)則的。如果沒(méi)有加號(hào),匹配的結(jié)果就是1,2,3,5,4,3,3,879并不是我們想要的,有了加號(hào),每次匹配的數(shù)字就是至少一個(gè)了。
alert(str.match(re));//[123,54,33,879]
replace():查找符合正則的字符串,就替換成對(duì)應(yīng)的字符串。返回替換后的內(nèi)容。
用法:字符串.replace(正則,新的字符串/回調(diào)函數(shù))(在回調(diào)函數(shù)中,第一個(gè)參數(shù)指的是每次匹配成功的字符)
|:或的意思。
有關(guān)正則匹配是如何使用的內(nèi)容今天就介紹到這里了,正則匹配在使用過(guò)程當(dāng)中比較頻繁,所以一定要注意它的常用方法,在平時(shí)也要多去練習(xí)。如果大家還想了解更多與之有關(guān)的內(nèi)容,歡迎關(guān)注我們文軍營(yíng)銷的官網(wǎng)。
推薦閱讀
正則表達(dá)式語(yǔ)法有哪些 正則表達(dá)式語(yǔ)法大全 | 文軍營(yíng)銷空白行的正則表達(dá)式:\n\s*\r (可以用來(lái)刪除空白行) HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網(wǎng)上流傳的版本太糟糕,上面這個(gè)也僅僅能部分,對(duì)于復(fù)雜的嵌套標(biāo)記依舊無(wú)能為力) 首尾空白字符的正則表達(dá)式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來(lái)刪除行首行尾的空白字符(包括空格、...lua語(yǔ)言 lua語(yǔ)言特性是什么 | 文軍營(yíng)銷應(yīng)該能明白這是種不小的困擾沒(méi)有continue,白白增加了一層循環(huán),增加了縮進(jìn)層次,費(fèi)電且看起來(lái)不方便只有一種數(shù)字類型(double),這不僅僅有性能問(wèn)題,語(yǔ)義也不對(duì)不支持異常處理,默認(rèn)的方式對(duì)編程不友好,不管如何強(qiáng)調(diào)保持語(yǔ)言的精簡(jiǎn),也不應(yīng)該不支持異常處理不支持decorator,這是非常重要的語(yǔ)法糖先寫(xiě)這么多,另外談?wù)剬?duì)上面一...
說(shuō)明:如果您有任何疑問(wèn)或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732