站長資訊網
        最全最豐富的資訊網站

        正則的幾個基本概念

        經常看到說正則的文章,但說的只是方法,卻很少有說以下幾個基本概念:

        1.貪婪:+,*,?,{m,n}等默認是貪婪匹配,即盡可能多匹配,也叫最大匹配
        如果后面加上?,就轉化為非貪婪匹配,需要高版本支持

        2.獲取:默認用(x|y)是獲取匹配,很多時候只是測試,不一定要求得到所匹配的數據,尤其在嵌套匹配或大數據中就要用非獲取匹配(?:x|y),這樣提高了效率,優化了程序。

        3.消耗:默認是消耗匹配,一般在預查中是非消耗匹配。
        舉個例子,2003-2-8要變為2003-02-08
        如果用/-(d)-/第二次匹配將從8開始,從而只替換第一個2,錯誤
        如果用/-(d)(?=-)/則第二次匹配從第二個-開始,即不消耗字符-

        4.預查:js中分為正向預查和負向預查
        如上面的(?=pattern)是正向預查,在任何匹配 pattern 的字符串開始處匹配查找字符串。還有(?!pattern)是負向預查,在任何不匹配 pattern 的字符串開始處匹配查找字符串。負向預查有時會用在對[^]的擴充,[^]只是一些字符,而?!可以使整個字符串。

        5.回調:一般用在替換上,即根據不用的匹配內容返回不用的替換值,從而簡化了程序,需要高版本支持

        6.引用:num 對所獲取的第num個匹配的引用。
        例如,'(.)11′ 匹配AAA型。'(.)(.)21′ 匹配ABBA型。


        [Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

        當然還有很多,這些都只是基本的需要掌握的

        遇到正則問題,一般可用以下兩種方法解決:

        1.分類,即根據所有的可能列出各種情況,如2003以內的數
        0 0
        1-999 [1-9]d{0,2}
        1000-1999 1d{3}
        2000-2003 200[0-3]

        所以最后的匹配就是 (0|[1-9]d{0,2}|1d{3}|200[0-3])

        2.分組,即將整句分為不同的最小單元,如’、%、_成雙出現
        能成組的,即允許存在的,有

        %% 如果是大于2的偶數個可細分為多個更小的2字符單元
        __
        [^’%_] 非以上字符

        所以最后的匹配就是 ^(”|%%|__|[^’%_])*$

        ——————————————————————————–

        replace + function 5.5+支持


        [Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人精品综合久久久| 桃花岛精品亚洲国产成人| 国产精品日韩AV在线播放| 狠狠色伊人久久精品综合网| 国产精品久久久久AV福利动漫| 欧美精品亚洲精品日韩专区| 欧美激情精品久久久久| 国产成人精品999在线观看| 合区精品久久久中文字幕一区| 国产情侣大量精品视频| 青青草国产精品| 国产精品久久毛片完整版| 日本VA欧美VA精品发布| 四虎精品亚洲一区二区三区| 国产精品一区三区| 午夜精品成年片色多多| 囯产精品一品二区三区| 久久九九精品99国产精品| 亚洲欧洲久久久精品| 久久青青草原精品国产软件 | 99视频精品全部在线观看| 无码国内精品人妻少妇| 亚洲精品国产综合久久一线| 久久久久国产精品三级网| 国产精品自在线拍国产第一页| 99精品欧美一区二区三区| 在线精品视频播放| 久久亚洲国产精品一区二区| 国产高清在线精品一区| 91久久婷婷国产综合精品青草| 久久精品国产精品亚洲毛片| 久久久无码精品亚洲日韩按摩 | 国产精品网站在线观看免费传媒| 亚洲国产精品一区二区第一页| 亚洲午夜成人精品电影在线观看| 日本Aⅴ大伊香蕉精品视频| 久久国产精品视频| 日韩精品人成在线播放| 欧美激情精品久久久久久久九九九| 欧美成人精品一区二三区在线观看| 三级高清精品国产|