国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JS正則表達式要點分析

來源:懂視網 責編:小采 時間:2020-11-27 20:04:24
文檔

JS正則表達式要點分析

JS正則表達式要點分析:本文主要和大家分享JS正則表達式的要點,由于之前在看VueJS的源碼, 看到了HtmlParser部分, 感覺以前看的正則表達式基礎知識已經完全不夠用了, 現翻閱博客資料, 將一些JS中正則表達式難用的部分總結歸納, 方便自己和sf友翻閱.正則分組重復匹配對于重復的匹配,
推薦度:
導讀JS正則表達式要點分析:本文主要和大家分享JS正則表達式的要點,由于之前在看VueJS的源碼, 看到了HtmlParser部分, 感覺以前看的正則表達式基礎知識已經完全不夠用了, 現翻閱博客資料, 將一些JS中正則表達式難用的部分總結歸納, 方便自己和sf友翻閱.正則分組重復匹配對于重復的匹配,

后向引用(反向引用)

我們考慮一個很特殊的情況, 當我們要匹配四個IP段相同的情況, 如 100.100.100.100 時, 重復匹配分組的策略失效了: 重復匹配分組 并不能保證匹配相同的數字 -> 這時候我們需要借助 后向引用 策略的力量了(少年, 你渴望力量嗎2333, 戳我頭像, 帶你探索音樂與代碼交織的文藝道路.)

后向引用在不同語言的正則表達式書寫中, 有不同的語法, 我們討論JS中最常見的一種, 形如: \number 的后向引用, 其中, number 代表分組的序號.

給你一個簡單的栗子, 瞬間就記住了, 假使我們要匹配重復的三位數字, 我們將匹配一個數字的規則標記為一個分組: (\d), 重復匹配這個分組(第一個分組)的具體內容三次: (\d)\1, 這樣就達到了目的.

我們很容易將重復匹配和后向引用分別開來: 前者是重復匹配相同的規則, 后者是匹配分組的具體內容.

默認的一些規則需要稍加理解并記住:

  • \0代表的是, 整個正則表達式的匹配的內容

  • 正則斷言

    還記得我看過的一篇大概名為<30分鐘學會正則表達式>的文章中, 里面提及過正則斷言.
    當時感覺真是一看就懂. 但很遺憾, 實際生產中, 使用各種復雜正則表達式的情況實在是太少, 今天如果不翻閱百度, 我恐怕是不能記起斷言的分類和各種使用方法了.

    斷言的字面意思便是, 斷定(程序)運行到此時(結果)是這樣的"場景", 它描述的是一種 場景, 換句話說, 是一種"肯定的場景". 但要記住的是, 我們的"結果"是不包含在"場景"里面的.

    VueJS里頭需要匹配HTML tag, 我們就以匹配: '<segment>Not Fault</segment>' 中的 'Not Fault' 為例吧.

    我們如果使用普通的正則表達式, 如 /<segment>.*</segment>/ 會匹配到整個字符串 '<segment>Not Fault</segment>'. 我們使用斷言, 以"場景"的方式思考: '<segment>' 和 '</segment>' 是一種"肯定的場景", 我們需要匹配的結果是: 'Not Fault', 無論tag內部的字符無論如何變化, tag頭和tag尾都是不變的.

    一鼓作氣, 我們繼續往下

    先行斷言

    先行斷言, 我是這樣理解的: 先匹配內容, 再做"場景"假設.

    放到我們先前的栗子中, 便這樣匹配, 一直匹配內容, 直到碰上 '</segment>' 的場景, 語法如下: (?=</segment>)

    后發斷言

    后發斷言, 我的理解是: 先匹配場景, 再匹配內容.

    放到我們先前的栗子中, 先匹配 '<segment>' 的場景, 再繼續往下匹配內容, 語法如下: (?<=<segment>)

    實踐

    正則表達式是對字符串內容做匹配, 所以我將"先"和"后"的理解綁定到內容匹配的先后順序上, 方便理解.

    我們將先行斷言和后發斷言結合起來, 整個表達式如下: (?<=<segment>).*(?=</segment>), 我們便可獲得想要的結果: 'Not Fault' 了.

    "正負"斷言

    其實我們剛才做的是肯定的場景, 實際情況中還有"不滿足此場景"的使用場景.

    比如, 我們剛才使用的表達式: (?<=<segment>).*(?=</segment>) 是肯定有 '<segment>' '</segment>' 的場景下去匹配內容, 其實是使用的 "正后發斷言" 和 "正先行斷言", "正"即代表肯定的狀態.

    那負斷言, 也就是不滿足場景的斷言咯... 語法即把正斷言中的等于號換成感嘆號:

  • 負先行斷言 (?!)

  • 負后發斷言 (?<!)

  • 如: ['1999','2099','2199'...'9099'] 中如果我們要匹配除了'1999'以外的所有帶有'99'結尾的年份, 我們可以使用表達式: (?<!19)99

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JS正則表達式要點分析

    JS正則表達式要點分析:本文主要和大家分享JS正則表達式的要點,由于之前在看VueJS的源碼, 看到了HtmlParser部分, 感覺以前看的正則表達式基礎知識已經完全不夠用了, 現翻閱博客資料, 將一些JS中正則表達式難用的部分總結歸納, 方便自己和sf友翻閱.正則分組重復匹配對于重復的匹配,
    推薦度:
    標簽: js 解析 分析
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 在线观看国产一区 | 青草青草伊人精品视频 | 精品国产欧美一区二区三区成人 | 亚洲不卡中文字幕 | 欧美综合视频 | 欧美激情一区二区 | 九九操视频 | 日韩一区二区三区精品 | 91伊人国产 | 一级a毛片免费观看久久精品 | 国产网站在线 | 久久一区二区三区四区 | 国产三级一区 | 亚洲一二三区在线观看 | 999久久久免费精品国产牛牛 | 99久久国内精品成人免费 | 国产一区二区三区在线看 | a集毛片 | 精品久久亚洲一级α | 国产在线一区二区三区四区 | 免费一级a毛片在线播放视 免费一区二区 | 国产精品99久久久久久www | 91专区| 色综合久久中文字幕综合网 | 日韩二区三区 | 亚洲一页 | 国模冰冰炮交图150 国模吧国模吧一二区 | 91大神在线精品视频一区 | 亚洲欧美日韩另类 | 午夜精品视频在线观看 | 狠狠操夜夜| 亚洲国产成人久久一区www | 殴美aⅴ| 国产码欧美日韩高清综合一区 | 国产在线日韩 | 欧美十区| 日韩欧美亚洲国产高清在线 | 久久精品最新免费国产成人 | 国产第一页在线播放 | 日本一区二区视频在线观看 | 久久精品一区二区影院 |