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

首頁 > 編程 > Regex > 正文

js 正則表達式學習筆記之匹配字符串

2020-03-16 21:06:36
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js 正則表達式匹配字符串,需要的朋友可以參考下
 
 

今天看了第5章幾個例子,有點收獲,記錄下來當作回顧也當作分享。

關于匹配字符串問題,有很多種類型,今天討論 js 代碼里的字符串匹配。(因為我想學完之后寫個語法高亮練手,所以用js代碼當作例子)

 

復制代碼代碼如下:

var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走";

 

比如這樣一個字符串,匹配起來很簡單 /"[^"]*"/g 即可。

 

js 正則表達式學習筆記之匹配字符串
 

 

js 正則表達式學習筆記之匹配字符串

PS: 白色截圖是 chrome 34 控制臺中運行的結果,深灰色是 sublime text 結果。

很容易就取到內容了,可是親,你有沒有想過,js字符串里允許轉義。

js 正則表達式學習筆記之匹配字符串

 

js 正則表達式學習筆記之匹配字符串
 

 

 

復制代碼代碼如下:

var str1 = "我是字符串1哦,/"快把我取走/"", str2 = "我是字符串2哦,/"快把我取走/"";

 

這不是我們想要的結果,所以我們要處理下轉義問題。
轉義的規則是 / 后面跟著一個字符,所以我們用 //. 去匹配它,就有了這樣的正則 /"(?://.|[^"])*"/g

 

js 正則表達式學習筆記之匹配字符串
 
js 正則表達式學習筆記之匹配字符串
 
可能對于正則不熟悉的朋友,一下子從 /"[^"]*"/g 變到 /"(?://.|[^"])*"/g 后理解不了,我簡單說明下。
(?:) 是非捕獲組,就是不會把內容抓取保存到內存里的。
//. 用于匹配 /" /' /a 之類的轉義字符,匹配成功的話消耗2個字符。
[^"] 匹配除了 " 以外的所有字符,匹配成功的話消耗1個字符。
所以這個表達式的意思是,先匹配 /. 這樣轉義,如果成功會消耗掉正確的轉義,如果不成功就用 [^"] 匹配。

 

消耗掉正確的轉義的意思是,比如 "aa//aa/"aa/ufffaa" 都會被正常匹配,因為這些都在正常的轉義。
形如 "aa//aa/"aa/ufff//"aa" 這里的 //" 其中 // 會被匹配,而 " 既不滿足 //. 也不滿足 [^"]
所以這個匹配結果會是 "aa//aa/"aa/ufff//" 后面的 aa" 無法匹配到。

js 正則表達式學習筆記之匹配字符串
js 正則表達式學習筆記之匹配字符串

所以現在我們得到了比較強力的正則,可以有效的匹配 js 代碼中的字符串了。

騷等,好像還有哪里不對。
js 字符串允許折行,形如這樣:

 

復制代碼代碼如下:

var str = "大家好/
我是js";

 

但是這樣的字符串用剛才的正則能匹配么?答案是能。
因為 / 不能被 //. 匹配,但是可以被 [^"] 匹配到,/ 后面一個字符是 /r, /n 或 /r/n (具體是什么換行符要看系統了) 都能被 [^"] 匹配到,所以我們無意間寫了個強力的表達式。

現在剩下最后一個問題了,就是 ' 的匹配。
我們修改下表達式 /"(?://.|[^"])*"|'(?://.|[^'])*'/g 就好了。

來測試一下:

 

復制代碼代碼如下:

var str1 = "我是字符串1哦,/
/"快把我取走/"", str2 = '我是字符串2哦,/
/'快把我取走/'';

 

js 正則表達式學習筆記之匹配字符串

js 正則表達式學習筆記之匹配字符串

匹配成功。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区久久久久| 亚洲欧美在线免费观看| 国模视频一区二区三区| 奇米四色中文综合久久| 亚洲最新av在线网站| 亚洲国产欧美自拍| 国产丝袜精品第一页| 日韩三级成人av网| 91免费看片在线| 亚洲欧美日韩中文在线| 久久中国妇女中文字幕| 91精品久久久久久久久久久久久| 国产精品成人国产乱一区| 亚洲已满18点击进入在线看片| 欧美性生交xxxxxdddd| 亚洲国产精品久久精品怡红院| 成人激情免费在线| 日韩中文字幕免费视频| 久久高清视频免费| 九九九热精品免费视频观看网站| 日韩中文字幕视频在线| 91视频国产一区| 91av在线播放| 精品亚洲va在线va天堂资源站| 中文字幕少妇一区二区三区| 日韩中文字幕国产精品| 97在线精品国自产拍中文| 国内外成人免费激情在线视频网站| 亚洲另类xxxx| 高清一区二区三区四区五区| 97超视频免费观看| 九九热这里只有精品免费看| 这里只有精品久久| 91国产高清在线| 成人国产精品一区| 综合av色偷偷网| 国产91对白在线播放| 日韩av网址在线观看| 日韩av免费观影| 久久99亚洲精品| 国产精品自拍小视频| 国产精品第一第二| 亚洲成年网站在线观看| 91福利视频网| 久久久国产成人精品| 久久中国妇女中文字幕| 国产精品一久久香蕉国产线看观看| 欧美成人午夜激情视频| 久久最新资源网| 亚洲福利视频二区| 成人免费视频97| 亚洲久久久久久久久久| 久久精品国产69国产精品亚洲| 亚洲精品自产拍| 伊人成人开心激情综合网| 97人洗澡人人免费公开视频碰碰碰| 国产欧美一区二区三区在线| 成人在线小视频| 色哟哟入口国产精品| 91免费视频网站| 欧美日韩国产一中文字不卡| 午夜精品在线观看| 欧美黄色成人网| 丝袜情趣国产精品| 欧美丝袜美女中出在线| www.日本久久久久com.| 久久香蕉国产线看观看av| 久久精品久久久久电影| 91久久久国产精品| 欧美激情在线播放| 久久久久久久影视| 久久精品亚洲热| 日韩在线观看视频免费| 91av在线看| 91网站免费观看| 亚洲视频视频在线| 91在线精品视频| 日韩电视剧免费观看网站| 2019亚洲男人天堂| 国产精品久久久久久av福利软件| 亚洲欧美国产精品| 成人免费视频网址| zzijzzij亚洲日本成熟少妇| 久久久久久久久久国产精品| 久久国产精彩视频| 日韩中文字幕亚洲| 国产精品视频内| 亚洲综合小说区| 日韩中文在线不卡| 日韩视频欧美视频| 亚洲精品xxx| 国产精品入口免费视频一| 人人爽久久涩噜噜噜网站| 在线播放国产精品| 欧美亚洲国产视频| 久久久噜噜噜久噜久久| 久久久欧美一区二区| 亚洲色图日韩av| 欧美一区第一页| 欧美又大粗又爽又黄大片视频| 91精品免费久久久久久久久| 欧美国产日韩中文字幕在线| 国产精品久久久久久久久久小说| 人人做人人澡人人爽欧美| 狠狠躁夜夜躁人人爽超碰91| 97热在线精品视频在线观看| 美日韩丰满少妇在线观看| 欧美成年人视频| 欧美精品少妇videofree| 亚洲第一视频网| 亚洲欧美国产va在线影院| 精品亚洲夜色av98在线观看| 精品中文字幕在线| 久久免费精品日本久久中文字幕| 疯狂做受xxxx欧美肥白少妇| 成人免费网站在线观看| 欧美高清激情视频| 777国产偷窥盗摄精品视频| 91久久久久久久久久| 亚洲自拍偷拍色图| 欧美在线激情网| 日韩电影免费观看在线观看| 欧美日韩国产二区| 狠狠躁18三区二区一区| 国产一区二区三区中文| 狠狠做深爱婷婷久久综合一区| 97在线观看免费高清| 亚洲bt欧美bt日本bt| 亚洲石原莉奈一区二区在线观看| 亚洲精品不卡在线| 国产精品igao视频| 国产成人福利夜色影视| 欧美极品欧美精品欧美视频| 亚洲欧美日韩国产中文专区| 日韩精品在线观| 日韩av在线一区二区| 国产精品美女在线观看| 日韩av色在线| 最近2019免费中文字幕视频三| 亚洲成人精品av| 国产日韩av在线播放| 亚洲成人性视频| 日韩电影中文 亚洲精品乱码| 国产日韩欧美夫妻视频在线观看| 亚洲精品日韩丝袜精品| 亚洲丝袜av一区| 91视频九色网站| 国产免费一区二区三区在线观看| 久久精品人人做人人爽| 欧美日韩美女视频| 欧美亚洲国产视频小说| 国模极品一区二区三区| 91高清在线免费观看| 亚洲美女自拍视频| 亚洲色图av在线| 久久综合久久88| 欧美视频在线看| 91免费高清视频| 日韩av网址在线| 亚洲欧美在线一区二区| 中文字幕亚洲一区在线观看| 精品一区电影国产| 亚洲视频电影图片偷拍一区| 国产欧美在线视频|