婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談正則速記法的技巧

淺談正則速記法的技巧

熱門標簽:外呼系統無呼出路由是什么原因 400電話辦理電話辦理 甘肅醫療外呼系統排名 呼叫系統外呼只能兩次 ai電話機器人搭建 西藏智能外呼系統代理商 地圖標注教學點 貴港公司如何申請400電話 梅縣地圖標注

給你一篇文章,如何挑選出你想要的字符串呢?你可以從左到右從上到下,一個一個字符讀取出來,寫一大堆if做判斷。這樣太麻煩了,正則就是將以上過程抽象出來,用一些特定符號就能表示出大部分規則

對大部分人來說,正則主要是難記,其實只要對正則符號分類記憶,就會發現核心概念其實特別簡單

注:本文會假設你至少看過一遍正則的文檔,如果沒看過,可以看mdn(有中文翻譯),如果覺得mdn排版亂,推薦去https://devdocs.io/javascript/global_objects/regexp學習。本文所使用語言為javascript

元字符

/a/中的a就是一個元字符,一個元字符匹配一個實體字符,這里的“a”沒有特殊含義,就匹配一個英文a

/\d/就匹配0到9的所有數字,如果兩個連寫/\d\d/就可以匹配10到99的所有數字

/./可以匹配任何字符

集合

假如有一串字符串'0123456789',我只想匹配其中的'3','6','9',這時可以放在集合中/[369]/

執行后會發現只有3被匹配到,是因為集合中不管寫多少東西都代表一個元字符,集合也是一種元字符
你可能見過這樣都集合/[0-9a-zA-Z_]/它代表匹配所有數字,字母和下劃線,它與元字符/\w/的效果是一樣的,集合更靈活\w更方便

排除型集合

/[^0-9]/除了數字都匹配(我喜歡叫它否定集合)

或(多選)

假設我有一大堆書單,我希望從中匹配出naroto和one piece,那么可以這樣寫/naroto|one pice/ 豎線代表或,a或b,你也可以寫多個a|b|c|d,你當然可以寫出0|1|2...|9來匹配所有數字。但要注意和集合的區別,集合是一個元字符,不能匹配單詞,|兩邊可以是多個元字符

分組

我現在有一堆文件,我希望匹配出后綴是.css和.less的文件,你可以很自然的寫出/.css|.less/這樣的代碼。其實還有一個簡便寫法/.(c|le)ss/,分組可以將若干個元字符放在同一個作用域中做處理,通過分組我們可以寫出更簡練的代碼

分組還有一個特殊的用法,思考如何匹配'asd_asd_asd_asd_asd'這種字符串?

答案是/(asd)(_\1)+/,\1是個非常特殊的元字符,代表重復使用第一個分組的匹配結果,\2就代表第二個,以此類推,+加號表示重復一到多次(這個后面會講),需要注意的是計數從1開始,\0代表另外的意思(請看文檔)

量詞

一長串字符中我只想匹配連續的數字,但/\d/只會匹配一個,這時候可以使用量詞/\d{n,}/,n寫幾就是幾到多,比如{1,}就是1到多。{n}這種寫法表示n個相連,匹配2333可以寫成/23{3}/

還有幾個簡寫的量詞

  • +代表1到多,等于{1,}
  • *代表0到多,等于{0,}
  • ?代表0或1個,等于{0,1}

貪婪模式和非貪婪模式

量詞有個尷尬的地方,比如用/.*a/去匹配 '123a123a',本來希望得到'123a',實際卻得到'123a123a'。這是因為任何字符都滿足/./加上量詞會導致從頭匹配到尾,但因為我們還有其他元字符,所以這時正則引擎會回溯,將已經匹配的結果從后往前一個個拿出來,與剩下的元字符相匹配。
這種模式叫貪婪模式,它可能會產生預期之外的結果和不必要的性能浪費

解決方案是使用非貪婪模式,在量詞后面加?問號可以得到最小結果,現在使用/.*?a/去匹配就可以得到'123a'了。任何量詞后都可以使用非貪婪模式

環視

x(?=y)這個功能有很多種翻譯,比如零寬斷言,我個人感覺比較準確的是“正向肯定環視”
x(?!y)正向否定環視

x代表元字符,y也代表元字符,x(?=y)的意思是緊接著y的x,比如 '-1a--2b-',使用/\d(?=a)/去匹配,會得到1;/\d(?!a)/去匹配,會得到2。

這功能怎么用?舉個例子,有一段字符串'a(123)b',我只想要括號內的內容,但不想要括號
我需要匹配到右括號左邊的位置,那么我可以寫成/(?=\))/(注意括號需要轉義),我不想要左括號/[^(]/,我不關心括號內的內容/.*/,這時組合三個正則就變成了/[^(].*(?=\))/

實際上這個功能匹配的是位置,從匹配到的位置開始找元字符,所以你如果在環視后面加量詞是沒用的

其他

^$也是匹配位置的元字符,分別是匹配開頭和結尾,比如我們想匹配文件結尾是.js的文件可以寫成/.js$/。匹配http開頭的鏈接可以寫成/^http:\/\//

還有一些特殊的\u[\b]\0等,需要你自己看文檔

標識符

g:一個正則只會匹配一次,如果加上g標識符就會全局匹配, /\d/g,這個正則是不管兩個數字之間隔了什么,都會將所有數字匹配出來

i:不區分大小寫/^http:\/\//i就會匹配http://和HTTP://

核心概念就這么多,其他內容請詳細查看文檔

你以為這就結束了?其實還有后續噠!

我要繼續說環視

還有個神奇的逆向環視沒有講x(?=y) ,因為這是18年才進正式標準的功能,雖然它可能比js年齡大,但js就是不支持你怕不怕!

前面那個/[^(].*(?=\))/可以改成/(?=y).*(?=\))/

正則最大但坑就是,讓新手產生正則無所不能的想法,一個復雜字符串處理總以為可以通過一個神奇的正則來搞定。

正則不是萬能的!

還是之前的例子,給字符串'a(1\(2(3)'讓你取括號內的內容請問你怎么取?首先應該弄清需求,如果正則過于難寫,可以用js的字符串處理函數輔助正則,分部操作。另外正則的性能并不高,不是說很復雜的操作寫成一行正則性能就比其他方式快了,沒有測試就沒有發言權

正則理論上是有極限的,舉個例子,有字符串1xxxyyyy2讓你取{n}個x和{m}個y,n和m是不確定個數,寫成x{1,}y{1,}是沒問題的,但如果要求是x{n}y{n}就不行了,比如一個字符串有3個x,你就要取3個y,有4個x,你就要取4個y,單靠正則就無法完成了。

正則難,難在門檻高,門檻高在難記,之所以難記,其實還是因為反人類的符號讓你下意識的排斥它。熟悉正則,正式正則,學會正則,會給你帶來超乎想象的便利!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 通俗解釋JavaScript正則表達式快速記憶

標簽:哈密 大興安嶺 常州 海口 湖州 涼山 本溪 泰安

巨人網絡通訊聲明:本文標題《淺談正則速記法的技巧》,本文關鍵詞  淺談,正則,速記法,的,技巧,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談正則速記法的技巧》相關的同類信息!
  • 本頁收集關于淺談正則速記法的技巧的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人午夜视频| 国产激情一区二区三区桃花岛亚洲| 美女在线视频一区| 成人综合在线观看| 日韩一区二区在线看| 亚洲视频综合在线| 激情五月婷婷综合网| 欧美日韩亚洲国产综合| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产欧美精品日韩区二区麻豆天美| 亚洲国产精品久久一线不卡| 成人性生交大片免费看中文网站| 日韩欧美一区在线| 亚洲电影中文字幕在线观看| 成人黄色小视频在线观看| 精品对白一区国产伦| 天天影视色香欲综合网老头| 色综合久久久久综合| 国产精品免费丝袜| 丰满少妇久久久久久久| 久久久www免费人成精品| 久久精品免费看| 欧美猛男gaygay网站| 一区二区在线观看视频| aaa欧美日韩| 国产精品入口麻豆九色| 国产v日产∨综合v精品视频| 久久精品网站免费观看| 国产成人精品综合在线观看 | 五月婷婷综合在线| 在线看日韩精品电影| 亚洲国产aⅴ成人精品无吗| 色吧成人激情小说| 亚洲成在人线在线播放| 欧美日韩三级一区二区| 日韩成人精品在线| 日韩欧美国产wwwww| 国产一区三区三区| 国产欧美精品一区二区色综合 | 亚洲欧美电影院| 欧美色老头old∨ideo| 亚洲成人午夜电影| 日韩免费看的电影| 国产在线精品免费av| 欧美经典一区二区| 一本一本大道香蕉久在线精品| 亚洲一区二区不卡免费| 欧美高清一级片在线| 日本强好片久久久久久aaa| 日韩精品中文字幕一区二区三区| 久久精品国产精品亚洲红杏| 久久久五月婷婷| 成人高清在线视频| 亚洲午夜视频在线| 日韩女优电影在线观看| 国产成人在线观看免费网站| 亚洲色图另类专区| 日韩欧美一区在线| 91免费视频大全| 天天综合色天天| 国产欧美中文在线| 欧美色中文字幕| 国产精品一卡二卡| 天涯成人国产亚洲精品一区av| 亚洲精品在线观看视频| 日本国产一区二区| 国产精品影视在线观看| 午夜久久久久久| 国产精品天美传媒沈樵| 欧美日产在线观看| 国产不卡视频在线播放| 亚洲成人激情综合网| 亚洲国产电影在线观看| 日韩一区二区在线观看| 色美美综合视频| 国产成人亚洲综合a∨猫咪| 亚洲电影一区二区三区| 国产欧美中文在线| 日韩视频一区二区三区在线播放| 成人短视频下载| 精品一区二区三区在线播放| 综合网在线视频| 久久久久国色av免费看影院| 欧美色精品天天在线观看视频| 成人av免费在线播放| 国产综合久久久久影院| 首页亚洲欧美制服丝腿| 亚洲精品综合在线| 国产精品人人做人人爽人人添| 欧美一区二区三区四区久久| av电影在线观看完整版一区二区| 精品一区二区三区免费播放| 视频一区中文字幕国产| 悠悠色在线精品| 中文字幕亚洲区| 欧美韩日一区二区三区| 久久综合视频网| 日韩欧美色综合网站| 欧美肥妇毛茸茸| 欧美三级日本三级少妇99| 91在线你懂得| 99久久99久久久精品齐齐| 成人美女在线观看| 波多野结衣一区二区三区| 岛国av在线一区| 国产精品综合一区二区| 国产精品一区二区久久不卡| 国产一二三精品| 国产精品自拍一区| 成人夜色视频网站在线观看| 国产精品亚洲人在线观看| 国产盗摄精品一区二区三区在线 | 国产女同互慰高潮91漫画| 日韩视频一区二区三区| 精品国产乱码久久久久久久 | 色悠久久久久综合欧美99| 成人18视频在线播放| 99久久婷婷国产综合精品电影 | 亚洲bt欧美bt精品777| 午夜精品一区二区三区电影天堂 | 麻豆精品在线观看| 另类小说图片综合网| 黄页网站大全一区二区| 国产成人精品一区二| 成熟亚洲日本毛茸茸凸凹| 91视频在线观看免费| 欧美亚洲国产一区二区三区va| 欧美人xxxx| 欧美精品一区二区高清在线观看| 久久久精品免费网站| 亚洲图片另类小说| 同产精品九九九| 国模少妇一区二区三区| 波多野结衣中文字幕一区二区三区| 91香蕉视频污| 日韩午夜在线播放| 久久久国产午夜精品| 亚洲精品少妇30p| 久久er精品视频| av成人免费在线| 欧美一区二区高清| 中文字幕高清不卡| 日韩电影在线免费观看| 精品亚洲aⅴ乱码一区二区三区| 成人中文字幕在线| 欧美三级韩国三级日本三斤| 欧美精品一区二区蜜臀亚洲| 亚洲色图都市小说| 麻豆精品视频在线观看视频| 成人做爰69片免费看网站| 欧美日本在线观看| 中文字幕日韩一区二区| 奇米精品一区二区三区在线观看 | 亚洲尤物视频在线| 精品一区二区免费视频| 色婷婷综合久久久中文一区二区| 欧美v国产在线一区二区三区| 中文字幕一区二区三区在线不卡| 蜜臀久久99精品久久久久宅男 | 精品国产精品一区二区夜夜嗨| 亚洲视频一区在线| 黑人巨大精品欧美一区| 欧美丰满一区二区免费视频| 亚洲人成7777| 成人午夜av在线| 2020国产精品| 蜜臀va亚洲va欧美va天堂| 91麻豆高清视频| 国产女人水真多18毛片18精品视频| 日韩国产在线观看一区| 欧美色窝79yyyycom| 国产精品午夜春色av| 久热成人在线视频| 欧美一区二区三区系列电影| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲精品菠萝久久久久久久| 国产一区二区三区四区五区入口| 欧美精品视频www在线观看| 亚洲色图欧洲色图| 成人爽a毛片一区二区免费| 精品国产一区二区三区忘忧草| 天天色图综合网| 欧美午夜片在线看| 一区二区三区在线免费| 99精品久久只有精品| 国产精品久久毛片a| 国产91精品一区二区麻豆网站| 26uuu精品一区二区| 美女视频黄a大片欧美| 日韩一区二区精品在线观看| 天堂成人免费av电影一区| 这里只有精品电影| 五月综合激情日本mⅴ| 欧美一区二区在线不卡| 秋霞午夜鲁丝一区二区老狼| 日韩一区二区三免费高清| 免费成人性网站| 欧美精品一区二区久久久| 风间由美一区二区av101 | 国产精品久久久久久久裸模|