校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 深入理解正則表達(dá)式語法知識

深入理解正則表達(dá)式語法知識

熱門標(biāo)簽:菏澤智能ai電銷機(jī)器人銷售公司 實用地圖標(biāo)注app css百度地圖標(biāo)注位置顯示 宿遷智能外呼系統(tǒng)供應(yīng)商 400免費(fèi)電話去哪申請 鄂州人工智能電銷機(jī)器人軟件 地圖標(biāo)注字母的軟件 地圖標(biāo)注商戶中心要收錢多少 線上教育ai外呼系統(tǒng)

4.選擇與分組

(1).分組

字符組[]:表示匹配若干個字符之一

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

普通性:普通是因為它也表示在一個位置上匹配一個字符對單個字符的操作在其上面也是可以起作用的;如:[a-z]{6};

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

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

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

例子:

-在字符組外

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>

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

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

.:在字符組內(nèi)部表示一個點;在字符組外部表示任意字符(查找單個字符,除了換行和行結(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接下來是任意一個字符接下來是8的一個字符串,所以匹配到的是6-8;

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

對于字符組還可以分為匹配型字符組和排除型字符組主要是因為^的含義的變化

^: 脫字符;

例子:

^在字符組外

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>

脫字符在[]外部是一個錨點,表示匹配以某某字符開頭的字符或者字符串,在[]中有除了的意思

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

例子:

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

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

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

(2).選擇

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

例子:

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>

這個例子有沒有括號都一樣都表示匹配16-8這個字符串

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

例子:

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也就是說(|)的分支選擇結(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

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

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

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

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

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

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

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

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

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

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

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

以上所述是小編給大家?guī)砹松钊肜斫庹齽t表達(dá)式語法知識的全部敘述,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的,再此頁非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 正則表達(dá)式基本語法詳解
  • js正則表達(dá)式基本語法(精粹)
  • PowerShell常用正則表達(dá)式和語法參考
  • js 玩轉(zhuǎn)正則表達(dá)式之語法高亮
  • C#正則表達(dá)式分解和轉(zhuǎn)換IP地址實例(C#正則表達(dá)式大全 c#正則表達(dá)式語法)
  • php正則表達(dá)式的基本語法總結(jié)
  • 正則表達(dá)式語法規(guī)則及在Javascript和C#中的使用方法
  • javascript中基于replace函數(shù)的正則表達(dá)式語法
  • VBS教程:正則表達(dá)式簡介 -正則表達(dá)式語法

標(biāo)簽:六安 池州 恩施 咸陽 綿陽 梅州 三亞 鞍山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入理解正則表達(dá)式語法知識》,本文關(guān)鍵詞  深入,理解,正則,表達(dá)式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《深入理解正則表達(dá)式語法知識》相關(guān)的同類信息!
  • 本頁收集關(guān)于深入理解正則表達(dá)式語法知識的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 土默特右旗| 马公市| 龙南县| 莎车县| 宣威市| 横山县| 化州市| 墨竹工卡县| 攀枝花市| 克东县| 浮梁县| 茌平县| 临湘市| 洪雅县| 苍南县| 怀化市| 东乡| 集安市| 沅陵县| 平定县| 禄劝| 土默特左旗| 历史| 渝中区| 济南市| 潜山县| 鞍山市| 资溪县| 孟津县| 沂源县| 阳信县| 阿坝县| 株洲县| 胶州市| 扎兰屯市| 鱼台县| 甘谷县| 巨鹿县| 武穴市| 桐城市| 银川市|