亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解javascript 正則表達式之分組與前瞻匹配

2019-11-19 13:45:16
字體:
來源:轉載
供稿:網友

本文主要講解javascript 的正則表達式中的分組匹配與前瞻匹配的,需要對正則的有基本認識,本人一直對兩種匹配模棱不清。所以在這里總結一下,如有不對,還望大神指點。

1.分組匹配:

  1.1捕獲性分組匹配 ()
  2.2非捕獲性分組匹配 (?:)

2前瞻匹配:

  2.1正向前瞻匹配: (?=表達式) 后面一定要匹配有什么
  2.2反向前瞻匹配: (?!表達式) 后面一定不能要有什么

1.1、捕獲性分組匹配 ()

var str1 = "holle word 123456 can 12s a 123 a";var reg1 =/([a-z]+)/s(/d+)/; //不是全局模式 ,以() 分組,這里有兩組,每一組都將匹配得到var regg1 = /([a-z]+)/s(/d+)/g; //全局模式 g,以() 分組,這里有兩組,每一組都將匹配得到//res :非全局模式console.log(reg1.exec(str1)); //exec()方法:["wold 123456","word","123456"]console.log(str1.match(reg1));//match()方法:["word 123456","word","123456"]console.log(RegExp.$1);//獲取到第一個分組 ([a-z]+) 匹配的結果 :wordconsole.log(RegExp.$2);//獲取到第一個分組 (/d+) 匹配的結果 :123456//res :全局模式console.log(regg1.exec(str1)); //exec()方法:["wold 123456","word","123456"]console.log(str1.match(regg1));//match()方法:["word 123456","can 12","a 123"]console.log(RegExp.$1);//獲取到第一個分組 ([a-z]+) 匹配的結果 :aconsole.log(RegExp.$2);//獲取到第一個分組 (/d+) 匹配的結果 :123

分析:這個正則表達式匹配的是,至少一個字母,跟著一個空格,然后至少一個數字,

非全局就是第一次匹配正確就不會再往后匹配 了,

1.exec()方法提取的值是規定的,第一個值是正則表達式相匹配的文本,如上示例的"/([a-z]+)/s(/d+)/",第2個值是第一個字子表達式(即第一個分組),如上示例的"([a-z])",以此類推

2.即使是全局模式,exec()都不會全局匹配,循環調用exec()是唯一全局匹配的方式,所以你會發現上面使用exec()方法的結果是一樣

3.而 match 方法在全局模式的捕獲性分組匹配,會對正則表達式全局匹配,但是不會對子表達式匹配(分組),所以你會發現上面str1.match(regg1) 的結果是不會單獨以分組([a-z]+)字母或者分組(/d+)數字出現,而是全局匹配整一個正則,所以結果是["word 123456","can 12","a 123"]

4.match 方法在非全局模式 的捕獲性分組匹配中,會對正則表達式全局匹配,也會對子表達式匹配(分組),所以你發現,str1.match(reg1)匹配的結果有單獨分組的匹配,但是因為是非全局,所以第一次匹配正確就結束了,只有["wold 123456","word","123456"],“wold 123456” 是整個表達式匹配的結果,“word” 是第一個分組([a-z]+)匹配的結果,“123456” 是第二分組(/d+) 匹配的結果

5.$1,$2... 分別包含正則表達式中的相對應反向引用,在全局與非全局模式,如果結果集有多個,會以最后一次匹配的結果來算,如上面,全局模式,匹配一共有三個符合的,["word 123456","can 12","a 123"],那么就以最后一個"a 123"為所有分組得到的結果,第一個分組是([a-z]+) 匹配的是字母所以是a,第二個分組是數字(/d+),所以是123 ,以此類推,如果只出現一次,一次也是當最后一次,自然也是一樣的分析,哈哈哈,有點多余。。。。

 1.2 (?:) 非捕獲性分組匹配 ,不捕獲子表達式(分組)

var str1 = "holle word 123456 can 12s a 123 a";var reg2 = /(?:[a-z]+)/s(?:/d+)/;var regg2 = /(?:[a-z]+)/s(?:/d+)/g;//res :非全局模式console.log(reg2.exec(str1));// exec(): 直接匹配["wold 123456"],console.log(str1.match(reg2));//match()方法:["word 123456"]//res :全局模式console.log(regg2.exec(str1));// exec(): 直接匹配["wold 123456"],console.log(str1.match(regg2));//match()方法:["word 123456","can 12","a 123"]

分析,和上面的捕獲性分組匹配是一樣的解析,只是不再匹配子表達式(分組)

2.1正向前瞻匹配: (?=表達式) 后面一定要匹配有什么

注意:前瞻分組匹配(?=表達式) 會作為匹配內容,不會作為匹配結果返回

//實例,提取以jpg類型的圖片名稱var str2 = "ab.jpg,admin/12.gif,and.jpg";var reg3 = /[^//]/w+(?=/.jpg)/g;console.log(str2.match(reg3));//["ab", ",and"]

2.2反向前瞻匹配: (?!表達式) 后面一定不能要有什么

 //示例:匹配 連續a字母三個以上,且后面不能有數字var str3 = "aaa12345,aaaadmin,aaaaaadd,dlala";var reg4 = /a{3,}(?!/d+)/g;console.log(str3.match(reg4));//["aaaa","aaaaaa"]

總結

以上所述是小編給大家介紹的javascript 正則表達式之分組與前瞻匹配,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色午夜影院| 国产精品国产亚洲伊人久久| 久久久99久久精品女同性| 亚洲精品国产精品乱码不99按摩| 3344国产精品免费看| 国产精品444| 日韩免费黄色av| 狠狠做深爱婷婷久久综合一区| 国产在线观看精品| 最近更新的2019中文字幕| 九九久久国产精品| 三级精品视频久久久久| 色天天综合狠狠色| 日韩欧美中文免费| 性视频1819p久久| 亚洲精品免费在线视频| 亚洲欧洲av一区二区| 成人午夜黄色影院| 亚洲欧美www| 欧美日韩国产丝袜另类| 欧美性猛交xxxx富婆弯腰| 国产精品流白浆视频| 久久久久久久999精品视频| 国产精品免费视频xxxx| 亚洲人成电影网站色www| 欧美日韩国产精品一区二区不卡中文| 911国产网站尤物在线观看| 美女av一区二区| 国产精品久久久久9999| 亚洲国产一区二区三区在线观看| 亚洲欧美一区二区三区情侣bbw| 92福利视频午夜1000合集在线观看| 午夜精品久久久久久久99热浪潮| 丁香五六月婷婷久久激情| 亚洲另类图片色| 中文字幕精品国产| 97av在线播放| 亚洲缚视频在线观看| 日韩成人av一区| 久久在线免费视频| 欧美一区二粉嫩精品国产一线天| 91久久精品日日躁夜夜躁国产| 亚洲一区二区三区777| 久久综合久中文字幕青草| 91欧美精品午夜性色福利在线| 日本国产高清不卡| 亚洲欧美制服中文字幕| 久久亚洲国产成人| 亚洲欧美中文字幕在线一区| 人体精品一二三区| 日韩在线视频网| 国产在线播放不卡| 免费成人高清视频| 日韩av在线免费播放| 精品视频偷偷看在线观看| 亚洲女人天堂视频| 亚洲成色777777在线观看影院| 国产精品视频色| 成人黄色av网| 国模叶桐国产精品一区| 狠狠色狠狠色综合日日小说| 成人激情黄色网| 亚洲免费视频观看| 精品露脸国产偷人在视频| 午夜精品久久久久久久白皮肤| 97在线精品国自产拍中文| 国产欧美日韩精品专区| 国产精品高潮呻吟久久av无限| 精品视频—区二区三区免费| 亚洲成色www8888| 欧美成人精品在线| 久久久亚洲精选| 97久久精品人搡人人玩| 在线观看日韩视频| 国产日本欧美一区二区三区| 亚洲精品久久久久| 欧美黑人视频一区| 欧美日韩国产成人| 不卡毛片在线看| 欧美激情乱人伦一区| 91干在线观看| 国产美女直播视频一区| 在线观看免费高清视频97| 欧美激情精品久久久久久免费印度| 久久视频这里只有精品| 午夜免费日韩视频| 亚洲人成电影网站色…| 8090成年在线看片午夜| 久久精品国产成人精品| 国产精品久久久| 日韩av综合网| 中文字幕亚洲欧美日韩2019| 国产原创欧美精品| 日韩电影在线观看永久视频免费网站| 亚洲级视频在线观看免费1级| 日韩精品中文字| 亚洲国产高清高潮精品美女| 亚洲精品aⅴ中文字幕乱码| 国产一区二区日韩精品欧美精品| 成人精品视频久久久久| 精品国产精品三级精品av网址| 亚洲免费视频网站| 欧美日韩加勒比精品一区| 国产日本欧美在线观看| 国语自产精品视频在线看抢先版图片| 亚洲国产成人91精品| 日韩成人av一区| 欧美一级成年大片在线观看| 日韩h在线观看| 成人中文字幕+乱码+中文字幕| 精品网站999www| 九九精品视频在线| 国产精品扒开腿做爽爽爽视频| 色小说视频一区| 亚洲国语精品自产拍在线观看| 一区二区亚洲欧洲国产日韩| 成人有码视频在线播放| 亚洲国产精品嫩草影院久久| 欧美成人全部免费| 韩曰欧美视频免费观看| 久久视频这里只有精品| 欧美乱大交xxxxx另类电影| 国产一区二区黄| 国产精品美女免费看| 伦伦影院午夜日韩欧美限制| 亚洲视频999| 国产精品成人国产乱一区| 欧美最猛性xxxx| 国产一级揄自揄精品视频| 国产亚洲人成a一在线v站| 97精品国产97久久久久久春色| 欧美日韩激情视频| 91精品在线播放| 日日狠狠久久偷偷四色综合免费| 久久精品视频导航| 91精品国产综合久久男男| 97久久伊人激情网| 亚洲第一天堂无码专区| 亚洲欧美另类人妖| 91精品视频观看| 欧美日韩另类视频| 亚洲国产成人久久| 日韩av在线资源| 午夜免费久久久久| 色多多国产成人永久免费网站| 亚洲人精选亚洲人成在线| 久久久久日韩精品久久久男男| 国产精品99蜜臀久久不卡二区| 92看片淫黄大片欧美看国产片| 97久久国产精品| 国产精品一区二区三区免费视频| 亚洲欧美日韩视频一区| 亲爱的老师9免费观看全集电视剧| 日韩精品在线免费观看| 精品国内自产拍在线观看| 国产视频久久久久久久| 欧美成人性色生活仑片| 成人福利视频在线观看| 亚洲男人天堂手机在线| 日韩福利视频在线观看| 精品一区二区三区四区| 国产热re99久久6国产精品| 亚洲人成电影在线| 国产精品日韩专区|