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

首頁 > 編程 > regex > 正文

JavaScript正則表達式上之基本語法(推薦)

2020-01-20 22:06:10
字體:
來源:轉載
供稿:網友

相關閱讀:

js正則表達式基本語法(精粹)

正則表達式語法

一個正則表達式就是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

定義

JavaScript種正則表達式有兩種定義方式,定義一個匹配類似 <%XXX%> 的字符串

1. 構造函數

復制代碼 代碼如下:

var reg=new RegExp('<%[^%>]+%>','g');

2. 字面量

復制代碼 代碼如下:

var reg=/<%[^%>]%>/g;

g:global,全文搜索,默認搜索到第一個結果接停止i:ingore case,忽略大小寫,默認大小寫敏感m:multiple lines,多行搜索(更改^ 和$的含義,使它們分別在任意一行對待行首和行尾匹配,而不僅僅在整個字符串的開頭和結尾匹配)

元字符

正則表達式讓人望而卻步以一個重要原因就是其轉義字符太多了,組合非常之多,但是正則表達式的元字符(在正則表達式中具有特殊意義的專用字符,可以用來規定其前導字符)并不多

元字符:( [ { / ^ $ | ) ? * + .

并不是每個元字符都有其特定意義,在不同的組合中元字符有不同的意義,分類看一下

字符類

一般情況下正則表達式一個字符(轉義字符算一個)對應字符串一個字符,表達式 ab/t 的含義是

但是我們可以使用元字符[]來構建一個簡單的類,所謂類是指,符合某些特征的對象,是一個泛指,而不是特指某個字符了,我們可以使用表達式 [abc] 把字符a或b或c歸為一類,表達式可以匹配這類的字符

元字符[]組合可以創建一個類,我們還可以使用元字符^創建反向類/負向類,反向類的意思是不屬于XXX類的內容,表達式 [^abc] 表示不是字符a或b或c的內容

范圍類

按照上面的說明要是我們希望匹配單個數字那么表達式是這樣的

[0123456789]

如果是字母那么。。。,好麻煩,正則表達式還提供了范圍類,我們可以使用 x-y來連接兩個字符表示從x到y的任意字符,這是個閉區間,也就是說包含x和ybenshen,這樣匹配小寫字母就很簡單了

[a-z]

要是想匹配所有字母呢?在[]組成的類內部是可以連寫的,我們還可以這樣寫[a-zA-Z]

預定義類

剛才使用正則我們創建了幾個類,來表示數字,字母等,但這樣寫也很是麻煩,正則表達式為我們提供了幾個常用的預定義類來匹配常見的字符

有了這些預定義類,寫一些正則就很方便了,比如我們希望匹配一個 ab+數字+任意字符 的字符串,就可以這樣寫了 ab/d.

邊界

正則表達式還提供了幾個常用的邊界匹配字符

看個不負責任的郵箱正則匹配(切勿模仿,小括號后面會講到)/w+@/w+/.(com)$

量詞

之前我們介紹的方法都是一一匹配的,如果我們希望匹配一個連續出現20次數字的字符串難道我們需要寫成這樣

/d/d/d/d...

為此正則表達式引入了一些量詞

看幾個使用量詞的例子

/w+/b Byron 匹配 單詞+邊界+Byron

復制代碼 代碼如下:

(//w+/b Byron/).test('Hi Byron'); //true(//w+/b Byron/).test('Welcome Byron'); //true(//w+/b Byron/).test('HiByron'); //false

/d+/./d{1,3} 匹配三位小數的數字

貪婪模式與非貪婪模式

看了上面介紹的量詞,也許愛思考的同學會想到關于匹配原則的一些問題,比如{3,5}這個量詞,要是在句子種出現了十次,那么他是每次匹配三個還是五個,反正3、4、5都滿足3~5的條件,量詞在默認下是盡可能多的匹配的,也就是大家常說的貪婪模式

復制代碼 代碼如下:

'123456789'.match(//d{3,5}/g); //["12345", "6789"]

既然有貪婪模式,那么肯定會有非貪婪模式,讓正則表達式盡可能少的匹配,也就是說一旦成功匹配不不再繼續嘗試,做法很簡單,在量詞后加上 ? 即可

復制代碼 代碼如下:

'123456789'.match(//d{3,5}?/g); //["123", "456", "789"]

分組

有時候我們希望使用量詞的時候匹配多個字符,而不是像上面例子只是匹配一個,比如希望匹配Byron出現20次的字符串,我們如果寫成Byron{20} 的話匹配的是Byro+n出現20次,怎么把Byron作為一個整體呢?使用()就可以達到次目的,我們稱為分組

(Byron){20}

如果希望匹配Byron或Casper出現20次該怎么辦呢?可以使用字符 | 達到或的功效

(Byron|Casper){20}

我們看到圖中有個#1的東東,那是什么?使用分組的正則表達式會把匹配項也放到分組中,默認就是按數字編號分發的,各異根據編號獲得捕獲的分組內容,這個在一些希望具體操作第幾個匹配項的函數中很有用

(Byron).(ok)

如果有分組嵌套的情況,外面的組的編號靠前

((^|%>)[^/t]*)

有時候我們不希望捕獲某些分組,只需要在分組內加上 ?: 就可以了,著并不意味著該分組內容不屬于正則表達式,只是不會給這個分組加編號了而已

(?:Byron).(ok)

其實在C#等語言中分組還可以起名字,不過JavaScript不支持

前瞻表達式

說的有些抽象,看個例子good(?=Byron)

復制代碼 代碼如下:

(/good(?=Byron)/).exec('goodByron123'); //['good'](/good(?=Byron)/).exec('goodCasper123'); //null(/bad(?=Byron)/).exec('goodCasper123');//null

通過上面例子可以看出 exp1(?=exp2) 表達式會匹配exp1表達式,但只有其后面內容是exp2的時候才會匹配,也就是兩個條件,exp1(?!exp2) 比較類似

good(?!Byron)

復制代碼 代碼如下:

(/good(?!Byron)/).exec('goodByron123'); //null(/good(?!Byron)/).exec('goodCasper123'); //['good'](/bad(?!Byron)/).exec('goodCasper123');//null

以上所述是小編給大家介紹的JavaScript正則表達式上之基本語法(推薦)的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久国产一区二区| 久久97久久97精品免视看| 国产精品女人网站| 久久久久久有精品国产| 国产精品女视频| 欧美极品少妇xxxxⅹ喷水| 92看片淫黄大片欧美看国产片| 海角国产乱辈乱精品视频| 国产精品wwww| 久久综合伊人77777尤物| 国产精品成人免费电影| 亚洲男人av在线| xxxx欧美18另类的高清| 亚洲一区二区在线播放| 91精品国产色综合久久不卡98口| 国产精品三级在线| 成人免费黄色网| 国产精品2018| 欧美精品日韩三级| 国产福利成人在线| 亚洲最大福利视频网| 国产精品第10页| 中文字幕欧美精品在线| 国产一区红桃视频| 欧美精品激情blacked18| 欧美成人精品一区二区三区| 亚洲精品美女久久久| 久久免费国产视频| 国内精品久久影院| 亚洲国产一区二区三区在线观看| 成人国产精品免费视频| 精品国产一区二区三区在线观看| 成人黄在线观看| 亚洲精品国产成人| 亚洲欧美中文字幕| 日韩精品在线免费播放| 国产精品久久二区| 国产精品久久久久久亚洲调教| 欧美午夜精品久久久久久人妖| 日本国产欧美一区二区三区| 日日狠狠久久偷偷四色综合免费| 深夜福利一区二区| 日韩av观看网址| 久久久精品电影| 国产精国产精品| 国产精品美腿一区在线看| 最近中文字幕日韩精品| 欧美成人亚洲成人| 亚洲大胆美女视频| 九九热精品视频| 欧日韩不卡在线视频| 国产亚洲美女精品久久久| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲人成网7777777国产| 91久久久久久久一区二区| 日韩一区二区av| 亚洲国产天堂网精品网站| 亚洲石原莉奈一区二区在线观看| 91av中文字幕| 亚洲欧美一区二区三区四区| 高清欧美性猛交xxxx| 欧美午夜片欧美片在线观看| 曰本色欧美视频在线| 日韩美女在线观看| 亚洲永久在线观看| 一区二区三区视频免费| 日韩少妇与小伙激情| 国产一区二区三区网站| 久久av在线看| 国产97在线观看| 亚洲欧美中文日韩v在线观看| 伦伦影院午夜日韩欧美限制| 97成人精品视频在线观看| 亚洲女人天堂视频| 国产精品视频导航| 国产精品丝袜久久久久久高清| 中文字幕日韩在线播放| 久热爱精品视频线路一| 国产精品福利久久久| 91免费的视频在线播放| 欧洲成人免费aa| 欧美午夜电影在线| 国产视频精品免费播放| 亚洲欧洲一区二区三区在线观看| 国产亚洲视频在线观看| 国产一区二区黑人欧美xxxx| 国产精品久久9| 亚洲第一综合天堂另类专| 久久久成人精品| 久久精品国产精品| 一区二区成人av| 亚洲欧美综合v| 亚洲精品国产精品乱码不99按摩| 欧美亚洲国产成人精品| 国产精自产拍久久久久久蜜| 国产一区二区三区日韩欧美| 国产精品欧美激情在线播放| 欧美最猛性xxxxx亚洲精品| 成人深夜直播免费观看| 69久久夜色精品国产69| 亚洲欧美国产制服动漫| 欧美日韩国产一区中文午夜| 久久精品国产精品| 亚洲福利视频二区| 日韩av第一页| 精品国产乱码久久久久久虫虫漫画| 91久久精品国产91久久性色| 91国产中文字幕| 成人国产精品一区二区| 亚洲精品久久久久国产| 日韩精品极品视频| 亚洲国产欧美一区| 久久影视三级福利片| 亚洲国产精品字幕| 欧美尺度大的性做爰视频| 久久久久久噜噜噜久久久精品| 亚洲欧美日韩网| 久久人91精品久久久久久不卡| 亚洲人av在线影院| 国产做受高潮69| 成人中文字幕在线观看| 午夜精品理论片| 91在线中文字幕| 国内精品伊人久久| 欧亚精品在线观看| 亚洲精品一区中文| 国产精品久久久久av| 亚洲国产精品va在线看黑人| 亚洲网站在线看| 中文字幕久精品免费视频| 中文字幕一区日韩电影| 日韩有码片在线观看| 欧美国产第一页| 不卡av在线播放| 亚洲护士老师的毛茸茸最新章节| 黑人巨大精品欧美一区二区一视频| 国产又爽又黄的激情精品视频| 亚洲精品v天堂中文字幕| 国产亚洲一区精品| 亚洲japanese制服美女| 性色av香蕉一区二区| 国产乱人伦真实精品视频| 欧美一级大片视频| 欧美在线观看网站| 色综合久久悠悠| 伊人久久免费视频| 亚洲国产毛片完整版| 欧美成人午夜激情| 日韩激情av在线免费观看| 日韩av观看网址| 91网在线免费观看| 在线精品国产成人综合| 欧美激情久久久久久| 日韩中文字幕精品| 日韩av网站大全| 欧美午夜宅男影院在线观看| 日韩av在线免费观看一区| 精品视频久久久久久| 亚洲福利视频网| 欧美精品一本久久男人的天堂| 精品香蕉在线观看视频一| 久久久久久久久国产精品| 欧美激情视频网址| 久久91精品国产|