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

主頁(yè) > 知識(shí)庫(kù) > js 正則學(xué)習(xí)小記之匹配字符串字面量?jī)?yōu)化篇

js 正則學(xué)習(xí)小記之匹配字符串字面量?jī)?yōu)化篇

熱門(mén)標(biāo)簽:怎么在高德地圖標(biāo)注行走軌跡 施工地圖標(biāo)注怎么做 深圳400電話(huà)辦理那家好 襄陽(yáng)房產(chǎn)電銷(xiāo)機(jī)器人招商 百度地圖標(biāo)注飯店位置怎么 個(gè)性化地圖標(biāo)注在線(xiàn) 安徽移動(dòng)外呼系統(tǒng) 百度地圖標(biāo)注名編輯 清遠(yuǎn)陽(yáng)山400電話(huà)號(hào)碼如何申請(qǐng)

昨天在《js 正則學(xué)習(xí)小記之匹配字符串字面量》談到 /"(?:\\.|[^"])*"/ 是個(gè)不錯(cuò)的表達(dá)式,因?yàn)榭梢詽M(mǎn)足我們的要求,所以這個(gè)表達(dá)式可用,但不一定是最好的。
從性能上來(lái)說(shuō),他非常糟糕,為什么這么說(shuō)呢,因?yàn)?傳統(tǒng)型NFA引擎 遇到分支是從左往右匹配的,
所以它會(huì)用 \\. 去匹配每一個(gè)字符,發(fā)現(xiàn)不對(duì)后才用 [^"] 去匹配。
比如這樣一個(gè)字符串: "123456\'78"90"
16 個(gè)字符,除了第一個(gè) " 直接匹配成功,還剩余 15 個(gè),只有 2 個(gè)轉(zhuǎn)義(4 個(gè)字符),所以 \. 會(huì)失敗 10 次,只有 2 次成功。
10 次匹配失敗,需要回溯后用 [^"] 才能匹配成功,當(dāng)然最后一個(gè) " 會(huì)直接匹配成功。

很明顯,正常的字符串不可能全是轉(zhuǎn)義,正常的字符串才是主流,當(dāng)然不排除有人故意全轉(zhuǎn)義的情況。
所以這個(gè)正則需要10次回溯后才能匹配完成,如果字符串增長(zhǎng)到 1K 1M 腫么破呢?
所以我們要修改下這個(gè)正則,前后換下位置么?
難道是 /"(?:[^"]|\.)*"/ ? 呵呵,好像不太對(duì),這樣的話(huà)轉(zhuǎn)義就不能被匹配了。

所以還要修改下 /"(?:[^"\\]|\.)*"/ 這樣就OK了,遇到 \ 轉(zhuǎn)義就會(huì)用 \\. 去嘗試匹配。

可是還是有問(wèn)題,因?yàn)槲覀冊(cè)?[^"\\] 過(guò)濾掉了 n 所以沒(méi)法匹配多行字符的情況。

js 中 字符串用 折行是允許的,但是修改后的 正則 沒(méi)法匹配這樣的字符串了,所以我們還得繼續(xù)修復(fù)。

因?yàn)?. 沒(méi)法匹配換行,所以我們要用其他方式表達(dá)。
. 是用于匹配除換行符之外的所有字符,難道我們要 [.\n] 來(lái)表示么?
這樣是不對(duì)的,因?yàn)?[] 字符集中的 . 不再表示除換行符之外的所有字符,而是字符 . 也就是他本身一個(gè)字符而已。
那怎么辦呢?
其實(shí)換個(gè)思路,
d 表示 0-9
D 表示 [^0-9]
那么 [\d\D] 就表示所有了,不是么。(新人朋友不知道能不能消化這個(gè)知識(shí)點(diǎn)。)
同理 [\s\S] [\w\W] 同樣可以。
所以 /"(?:[^"\\]|\[\d\D])*"/ 這樣就滿(mǎn)足我們的要求了。

效果不錯(cuò)。
回頭過(guò)來(lái)分分析下他現(xiàn)在的性能吧。
還是這個(gè)字符串: "123456'78\"90" , 正則 /"(?:[^"\\]|\\[\d\D])*"/

16 個(gè)字符,除了第一個(gè) " 直接匹配成功,還剩余 15 個(gè),有 2 個(gè)轉(zhuǎn)義(4 個(gè)字符),[^"\\] 能匹配成功 10 個(gè)字符,只有 2 次失敗。
為什么不是 4 次失敗呢,明明有4個(gè)字符啊。\\ 雖然是2個(gè)字符,但是讀到第一個(gè) \ 就匹配失敗,然后用 \\[\d\D] 匹配成功,
占用掉了兩個(gè)字符 \\ 下次用下一個(gè)o開(kāi)始匹配,所以只有2次回溯。

只有 2 次需要回溯,然后用 \\[\d\D] 匹配成功。當(dāng)然最后一個(gè) " 還是會(huì)直接匹配成功。
所以從 10 次回溯,減少到了 2 次,雖然正則比昨天臃腫了很多,但至少性能提升了不止一個(gè)等級(jí)。

OK,今天的分享完畢,明天見(jiàn)。

您可能感興趣的文章:
  • js 正則表達(dá)式學(xué)習(xí)筆記之匹配字符串
  • 正則匹配密碼只能是數(shù)字和字母組合字符串功能【php與js實(shí)現(xiàn)】
  • String字符串匹配javascript 正則表達(dá)式
  • js正則學(xué)習(xí)小記之匹配字符串字面量
  • JavaScript正則表達(dá)式匹配字符串字面量
  • 一個(gè)關(guān)于JS正則匹配的踩坑記錄

標(biāo)簽:延邊 中衛(wèi) 黑河 阜陽(yáng) 臨夏 駐馬店 南昌 欽州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《js 正則學(xué)習(xí)小記之匹配字符串字面量?jī)?yōu)化篇》,本文關(guān)鍵詞  正則,學(xué)習(xí),小記,之,匹配,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《js 正則學(xué)習(xí)小記之匹配字符串字面量?jī)?yōu)化篇》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于js 正則學(xué)習(xí)小記之匹配字符串字面量?jī)?yōu)化篇的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人欧美一区二区三区视频网页| 99九九99九九九视频精品| 大胆亚洲人体视频| 91精品中文字幕一区二区三区| 中文字幕精品一区二区精品绿巨人 | 天天爽夜夜爽夜夜爽精品视频| 国产一区二区三区不卡在线观看| 色素色在线综合| 欧美一区二区精品久久911| 亚洲精品乱码久久久久久日本蜜臀| 国产精品一级片在线观看| 4438成人网| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美日韩不卡视频| 久久国产精品色婷婷| 97aⅴ精品视频一二三区| www久久久久| 日韩中文字幕不卡| 欧美亚洲一区二区在线观看| 国产精品久久久久久久久图文区| 国模娜娜一区二区三区| 欧美一区二区视频观看视频| 亚洲女人****多毛耸耸8| 国产一区 二区| 欧美日韩午夜在线视频| 一个色综合网站| 成人高清视频免费观看| 国产日韩欧美一区二区三区乱码 | 免费观看久久久4p| 欧美日韩视频在线第一区 | 久久精品在这里| 久久成人羞羞网站| 粉嫩一区二区三区在线看| 精品久久国产97色综合| 亚洲va欧美va人人爽午夜| 91久久精品一区二区二区| 国产精品第13页| 成人三级在线视频| 国产精品五月天| 懂色中文一区二区在线播放| 久久精品在这里| 国产成人午夜精品影院观看视频| 久久久亚洲高清| 裸体一区二区三区| 日韩一级高清毛片| 久久av资源站| 久久久久久毛片| 国产河南妇女毛片精品久久久| 欧美精品三级在线观看| 亚洲无人区一区| 在线观看日韩一区| 亚洲成人一区在线| 欧美一区二区在线免费观看| 捆绑变态av一区二区三区| 精品少妇一区二区三区 | 日韩欧美aaaaaa| 精品在线播放免费| 久久久久久久av麻豆果冻| 美女国产一区二区| 中文字幕一区二区不卡| 国产一区91精品张津瑜| 国产精品丝袜91| 91麻豆国产福利在线观看| 亚洲精品videosex极品| 欧美在线免费观看亚洲| 日韩av电影天堂| 欧美本精品男人aⅴ天堂| 国产盗摄精品一区二区三区在线| 国产精品久久看| 色94色欧美sute亚洲线路一久| 亚洲一区在线观看免费| 9191成人精品久久| 麻豆精品一二三| 欧美国产精品一区| 91久久线看在观草草青青| 香蕉久久一区二区不卡无毒影院| 91麻豆精品国产91久久久使用方法| 久久精品99久久久| 国产精品美女久久久久久| 欧美偷拍一区二区| 另类调教123区| 亚洲色欲色欲www在线观看| 欧美日韩亚洲高清一区二区| 国产一区二区网址| 亚洲久草在线视频| 日韩欧美成人激情| 91污片在线观看| 免费观看在线综合| 国产日韩v精品一区二区| 久久久精品蜜桃| 五月激情丁香一区二区三区| 日韩精品一区二区三区蜜臀| 成人妖精视频yjsp地址| 亚洲二区在线视频| 久久日韩精品一区二区五区| 91色视频在线| 极品少妇一区二区三区精品视频| 最新国产精品久久精品| 欧美一级国产精品| 99久久综合国产精品| 日本欧美一区二区三区乱码 | 国产乱对白刺激视频不卡| 国产精品久久久久aaaa樱花 | 欧美色手机在线观看| 黄色精品一二区| 一区二区三区成人| 久久久久国产精品免费免费搜索| 色av成人天堂桃色av| 国产一区二区三区综合| 亚洲一区在线观看网站| 国产亚洲精品福利| 91精品国产一区二区人妖| 国产成人鲁色资源国产91色综| 亚洲图片欧美色图| 国产亚洲精品bt天堂精选| 日韩午夜精品电影| 在线观看国产精品网站| 欧美日精品一区视频| 久久99精品久久久久久动态图 | 亚洲男人的天堂在线观看| 欧美精品一区在线观看| 日本韩国一区二区三区视频| 激情文学综合丁香| 亚洲二区在线视频| 亚洲人成小说网站色在线| 久久久一区二区三区捆绑**| 日韩欧美中文字幕精品| 91电影在线观看| 丰满少妇久久久久久久| 久久精品国产亚洲高清剧情介绍 | 国产欧美视频一区二区三区| 欧美一区二区视频网站| 欧美亚洲一区二区三区四区| 99久久777色| 国产成人精品三级| 人人爽香蕉精品| 亚洲激情男女视频| 中文字幕国产精品一区二区| 精品少妇一区二区三区| 日韩欧美电影一区| 日韩一区二区三区免费看 | 成人在线综合网| 国产欧美视频在线观看| 欧美欧美午夜aⅴ在线观看| 波多野结衣亚洲| 国产一区二区三区精品欧美日韩一区二区三区| 日韩精品免费专区| 亚洲h动漫在线| 亚洲电影第三页| 亚洲一区免费视频| 亚洲免费毛片网站| 亚洲色图欧洲色图婷婷| 国产精品久久久久久久久免费樱桃 | 成人av先锋影音| 国产91色综合久久免费分享| 国产精品自拍在线| 久久电影网站中文字幕| 免费av成人在线| 蜜臀久久久久久久| 麻豆精品一二三| 久久99精品久久久| 精东粉嫩av免费一区二区三区| 久久国产日韩欧美精品| 精品午夜久久福利影院| 国产精品自拍在线| 国产**成人网毛片九色 | 蜜桃av一区二区三区| 日韩福利视频导航| 美女视频黄 久久| 狠狠色综合播放一区二区| 国产精品影视在线| 丰满亚洲少妇av| 一本久道中文字幕精品亚洲嫩| 日本精品视频一区二区三区| 欧美中文字幕亚洲一区二区va在线| 麻豆精品国产91久久久久久| 免费人成黄页网站在线一区二区| 日本大胆欧美人术艺术动态| 麻豆成人免费电影| 国产精品123| 97se亚洲国产综合自在线不卡| 在线观看中文字幕不卡| 欧美裸体一区二区三区| 欧美哺乳videos| 国产精品家庭影院| 亚洲综合色噜噜狠狠| 日韩成人午夜电影| 国产剧情一区二区三区| 99久久综合精品| 欧美日韩国产经典色站一区二区三区| 欧美一卡二卡三卡四卡| 久久精品一区二区三区四区| 日韩久久一区二区| 天天综合日日夜夜精品| 国内精品在线播放| 国产成人精品www牛牛影视| av成人免费在线观看| 欧美精品一卡二卡| 久久久亚洲欧洲日产国码αv| 亚洲欧洲综合另类|