成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

正則表達(dá)式語(yǔ)法知識(shí)的示例分析

小編給大家分享一下正則表達(dá)式語(yǔ)法知識(shí)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為漾濞企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站建設(shè),漾濞網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

選擇與分組

正則表達(dá)式語(yǔ)法知識(shí)的示例分析

(1).分組

字符組[]:表示匹配若干個(gè)字符之一

字符組可以淺顯的理解為一些字符的組合,字符組與普通字符的區(qū)別在于:abc普通字符表示匹配a接下來(lái)b接下來(lái)c而字符組[abc]表示在同一位置匹配a或者b或者c;由于字符組本身的含義也決定了可以將這個(gè)字符組看成是一個(gè)普通的特殊字符。

普通性:普通是因?yàn)樗脖硎驹谝粋€(gè)位置上匹配一個(gè)字符對(duì)單個(gè)字符的操作在其上面也是可以起作用的;如:[a-z]{6};

特殊性:特殊是因?yàn)椋?.其他字符在其內(nèi)外的含義可能不同如:-,.,^等,2.在同一個(gè)位置可以有多中選擇,但這種選擇也只是限于一個(gè)字符;

各個(gè)字符在字符組內(nèi)外的區(qū)別:

-:在字符組內(nèi)部,表示一個(gè)范圍;在字符組外僅僅表示是一個(gè)字符;

例子:

-在字符組外

<script type="text/javascript">
var str = '2016-8-20';
var reg = /16-8/g;
console.log(str.match(reg)); //16-8
</script>

-在字符組內(nèi)

<script type="text/javascript">
var str = '2016-8-20';
reg = /1[6-8]/g;
console.log(str.match(reg)); //16 
</script>

-在字符組外是一個(gè)普通字符只表示-這個(gè)字符本身,所以匹配的是1接下來(lái)是6接下來(lái)是-接下來(lái)是8的這段字符串;所以是16-8

-在字符組內(nèi)表示的是一個(gè)范圍,所以匹配的是1接下來(lái)是6到8之間的任意數(shù)字的字符所以是16;

.:在字符組內(nèi)部表示一個(gè)點(diǎn);在字符組外部表示任意字符(查找單個(gè)字符,除了換行和行結(jié)束符)。

.在字符組外

<script type="text/javascript">
var str = '2016-8-20';
var reg = /6.8/g;
console.log(str.match(reg)); //6-8
</script>

.在字符組內(nèi)

<script type="text/javascript">
var str = '2016-8-20';
var reg = /6[.]8/g;
console.log(str.match(reg)); //null
</script>

.在字符組外表示任意字符;所以匹配的是6接下來(lái)是任意一個(gè)字符接下來(lái)是8的一個(gè)字符串,所以匹配到的是6-8;

.在字符組內(nèi)只是一個(gè)普通字符表示它本身;所以匹配的是6接下來(lái)是.接下來(lái)是8的一個(gè)字符串由于未匹配到所以為null;

對(duì)于字符組還可以分為匹配型字符組和排除型字符組主要是因?yàn)閊的含義的變化

^: 脫字符;

例子:

^在字符組外

<script type="text/javascript">
var str = 'han';
var reg = /^ha/g;
console.log(str.match(reg)); //ha
</script>

^在字符組內(nèi)

<script type="text/javascript">
var str = 'han';
var reg = /[^0-9]/g;
console.log(str.match(reg)); // h,a,n
</script>

脫字符在[]外部是一個(gè)錨點(diǎn),表示匹配以某某字符開(kāi)頭的字符或者字符串,在[]中有除了的意思

注意:[^a]表示匹配一個(gè)位置不等于a的字符,不要去理解成這個(gè)位置不是a就能匹配,后者的理解可以匹配一個(gè)空行,注意這個(gè)區(qū)別

例子:

<script type="text/javascript">
var str = 'han';
var reg = /n[^q]/g;
console.log(str.match(reg)); //null
</script>

注意:這個(gè)例子在n之后沒(méi)有任何字符,所以匹配的結(jié)果為空,如果按照上述的第二種理解可能就會(huì)認(rèn)為匹配結(jié)果是:n

[]中不管有多少字符,在同一個(gè)位置只會(huì)匹配到其中的任意一個(gè),如果說(shuō)我要在一個(gè)位置上匹配一個(gè)字符串那又該如何呢?

(2).選擇

此時(shí)可以用()加|這個(gè)組合,|在正則表達(dá)式中是或者的意思,而()在正則表達(dá)式中劃分一個(gè)范圍;單獨(dú)的()使用時(shí)沒(méi)有意義的,只有當(dāng)它和其他量詞共同使用才會(huì)體現(xiàn)出它的作用(先說(shuō)下淺顯的例子,貪婪匹配和非貪婪匹配再單獨(dú)去說(shuō),這里先不作說(shuō)明);

例子:

<script type="text/javascript">
var str = '2016-8-20';
var reg = /(16-8)/g;
console.log(str.match(reg)); //16-8
</script>
<script type="text/javascript">
var str = '2016-8-20';
var reg = /16-8/g;
console.log(str.match(reg)); //16-8
</script>

這個(gè)例子有沒(méi)有括號(hào)都一樣都表示匹配16-8這個(gè)字符串

當(dāng)()和|一起使用則是一種多選結(jié)構(gòu),可以匹配任意子表達(dá)式()表示的是一個(gè)范圍;|表示的是一個(gè)選擇方向

例子:

<script type="text/javascript">
var str = 'greygray';
var reg = /gr[ea]y/g;
console.log(str.match(reg)); // grey,gray
reg = /gr(e|a)y/g;
console.log(str.match(reg)); //grey,gray
</script>

以上這兩種匹配的結(jié)果都是grey, gray也就是說(shuō)(|)的分支選擇結(jié)構(gòu)在一定程度上是可以和[]進(jìn)行互相替代

例子:

<script type="text/javascript">
var str = 'greygray';
var reg = /gre|ay|yg/g;
console.log(str.match(reg)); //gre,yg,ay
</script>

輸出結(jié)果:gre,yg,ay

括號(hào)的添加與否對(duì)結(jié)果的影響很大如:

^hello | world | hi :匹配的是 ^hello 或者 world 或者 hi

^(hello | world | hi):.匹配的起始行是 ^hello 或者 ^world 或者 ^ hi

注意:多選結(jié)構(gòu)雖然有時(shí)候可以用字符組來(lái)表示,他倆之間可以互相表示,但是一個(gè)字符組只能匹配目標(biāo)文本中的單個(gè)字符,而每個(gè)多選結(jié)構(gòu)自身都可能是完整的正則,都可以匹配任意長(zhǎng)度的文本

在正則表達(dá)式中需要注意的幾點(diǎn):

1.在正則表達(dá)式中,空格字符也被視作一個(gè)規(guī)則字符;

2.-;.;*等在[]內(nèi)和[]外的含義并不相同注意區(qū)別;注意元字符在字符組內(nèi)外的區(qū)別;

3.當(dāng)對(duì)幾個(gè)字符添加[]之后該字符串就被視作一個(gè)字符組,而對(duì)單個(gè)字符操作的?*等也可以對(duì)其使用,量詞之間的混合使用和量詞與分組選擇之間的混合會(huì)有一個(gè)貪婪和非貪婪匹配的概念,對(duì)此會(huì)單獨(dú)拿出總結(jié);

4.分支結(jié)構(gòu)和字符組的區(qū)別;分支可以匹配任意長(zhǎng)度的文本;字符組只能匹配一個(gè)字符;

5.注意一些概念的理解:比如:[^x]表示‘匹配一個(gè)不等于x的字符'而不是'只有當(dāng)這個(gè)位置不是x才能匹配';[^x]后面的概念可以匹配一個(gè)空行在比如{x,y},?,*的理解;

6.在匹配中決定匹配是否成功的是{x,y}中的x,x對(duì)匹配成功與否起關(guān)鍵作用。

以上是“正則表達(dá)式語(yǔ)法知識(shí)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站題目:正則表達(dá)式語(yǔ)法知識(shí)的示例分析
文章鏈接:http://jinyejixie.com/article0/jjpoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、App開(kāi)發(fā)做網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
灵寿县| 台东县| 海宁市| 灵寿县| 金秀| 福州市| 凌云县| 山阳县| 公主岭市| 罗田县| 泰和县| 新营市| 高州市| 龙南县| 康平县| 水富县| 上虞市| 大英县| 招远市| 巧家县| 新巴尔虎左旗| 方山县| 新兴县| 大埔区| 鹤壁市| 盐源县| 阿坝| 陇川县| 朝阳区| 临江市| 虹口区| 秭归县| 福清市| 合肥市| 南皮县| 阿拉善左旗| 桃江县| 定远县| 陵川县| 香格里拉县| 裕民县|