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

首頁 > 編程 > regex > 正文

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

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

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

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

復制代碼 代碼如下:

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

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

 



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

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

 

復制代碼 代碼如下:

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

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

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

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


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

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

復制代碼 代碼如下:

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

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

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

來測試一下:

復制代碼 代碼如下:

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

匹配成功。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久免费精品国产| 色婷婷亚洲mv天堂mv在影片| 日韩精品久久久久久久玫瑰园| 亚洲电影免费观看高清完整版| 国产视频亚洲视频| 国产精品欧美激情| 久久福利网址导航| 精品国产一区二区三区久久| 国产精品视频在线播放| 亚洲午夜av电影| 97香蕉久久超级碰碰高清版| 日韩欧美亚洲范冰冰与中字| 久久久久久噜噜噜久久久精品| 欧美小视频在线观看| 国产一区二区三区久久精品| 日韩av男人的天堂| 欧美肥老妇视频| 日本精品va在线观看| 欧美一级淫片播放口| 亚洲欧洲第一视频| 国产在线视频一区| 亚洲人午夜精品免费| 国产成人精品电影久久久| 久久久久中文字幕| 亚洲九九九在线观看| 精品成人在线视频| 欧美国产一区二区三区| 久久久国产一区二区| 亚洲性日韩精品一区二区| 亚洲欧美一区二区精品久久久| 日韩成人在线免费观看| 深夜成人在线观看| www.色综合| 中文字幕精品—区二区| 国产精品美女呻吟| 日韩电影中文字幕在线观看| 成人激情在线播放| 欧美另类极品videosbest最新版本| 日韩在线国产精品| 久久成人精品一区二区三区| 欧美在线免费观看| 欧美激情区在线播放| 日韩精品免费在线播放| 久久久久久中文| 国产精品视频白浆免费视频| 国产精品揄拍一区二区| 亚洲第一色在线| 成人午夜小视频| 亚洲视频777| 国产精品av电影| 91久久久久久久| 日韩成人中文字幕| 成人黄色av网| 亚洲天堂网站在线观看视频| 国产精品视频久久久| 狠狠躁18三区二区一区| 琪琪亚洲精品午夜在线| 色综合伊人色综合网| 色一情一乱一区二区| 日本精品性网站在线观看| 欧美成人免费小视频| 亚洲精品一区二区三区婷婷月| 欧美主播福利视频| 尤物99国产成人精品视频| 日韩综合视频在线观看| 人妖精品videosex性欧美| 不卡伊人av在线播放| 欧美日韩亚洲网| 欧美黑人性猛交| 国产精品久久久久av免费| 国产99久久精品一区二区| 亚洲综合中文字幕在线观看| 久久九九全国免费精品观看| 成人在线小视频| 成人性教育视频在线观看| 国产日韩在线精品av| 国产精品69精品一区二区三区| 日韩精品欧美激情| 久久不射热爱视频精品| 亚洲精品99久久久久中文字幕| 久久精品国产一区二区电影| 久久久久久国产精品久久| 欧美成人一二三| 91久久久久久国产精品| 国产免费一区二区三区在线能观看| 亚洲美女av黄| 亚洲天堂第一页| 国产精品私拍pans大尺度在线| 国产精自产拍久久久久久| 久久久国产一区二区三区| 欧美激情精品久久久久久黑人| 一区二区欧美激情| 7777精品视频| 欧美性视频精品| 亚洲欧美国产精品| 成人亚洲欧美一区二区三区| 欧美一区二区三区图| 国产精品自拍网| 国产精品久久久久久久9999| 中文字幕日韩欧美| 欧美日韩亚洲一区二| 久久久久女教师免费一区| 欧美激情视频一区二区三区不卡| 亚洲最新视频在线| 2019中文字幕在线免费观看| 欧美中文字幕视频| 青青草原成人在线视频| 欧美激情网站在线观看| 精品久久久免费| 国产精品青青在线观看爽香蕉| 日韩在线视频中文字幕| 成人黄色网免费| 亚洲一区亚洲二区亚洲三区| 国产精品白丝jk喷水视频一区| 日韩视频在线一区| 在线a欧美视频| 亚洲久久久久久久久久久| 亚洲自拍欧美另类| 91在线直播亚洲| 九九热99久久久国产盗摄| 一本色道久久88亚洲综合88| 久久视频国产精品免费视频在线| 精品国产91久久久久久老师| 日韩高清有码在线| 久久五月天色综合| 亚洲综合在线中文字幕| 欧美日韩一区二区在线| 国产精品青草久久久久福利99| 中文字幕久久久av一区| 久久久久久久电影一区| 欧美超级乱淫片喷水| 亚洲r级在线观看| 久久精品国产99国产精品澳门| 黄色精品在线看| 久久综合九色九九| 成人黄色在线免费| 国产精品白嫩美女在线观看| 国产成人亚洲综合91精品| 国产视频观看一区| 精品久久久久久久久久久久久| 91精品国产综合久久男男| 日韩欧美成人精品| 国产精品免费视频xxxx| 精品久久在线播放| 国产精品国内视频| 91日韩在线视频| 亚洲色图15p| 视频在线一区二区| 精品国产一区二区在线| 国产日产亚洲精品| 欧美另类第一页| 国产精品久久久久7777婷婷| 亚洲人成电影在线观看天堂色| 8050国产精品久久久久久| 国产精品免费久久久久久| 国产一区二区三区在线视频| 国产成人a亚洲精品| 亚洲精品乱码久久久久久按摩观| 欧美一级淫片丝袜脚交| 中文字幕国内精品| 亚洲国产婷婷香蕉久久久久久| 日韩中文字幕在线视频| 国产精品久久久久久久天堂| 97在线视频观看|