淺談正則表達式中的分組和引用實現方法

 更新時間:2019年10月25日 23:21:49   作者:HyG   我要評論
由正則表達式如何匹配相同字符出發,講講正則表達式中的選擇、分組和引用,和牛逼的存在缺失很少遇到

問題

在外刊君讀者群中看到有人提出這樣的一個需求:

把字符串切成連續相同字符的正則怎么寫?比如abbcccdddd切成a,bb,ccc,dddd

之前我對正則表達式也是略有研究,想嘗試一下。其實我對正則表達式的學習基本完全來源于犀牛書的第10章,真正看懂這一章,我覺得操作正則表達式應該不在話下。

我的答案

先給出我的答案吧:

'abbccddd'.match(/(\w)\1*/g) // ["a", "bb", "cc", "ddd"]

說明

拿到這個問題,首先要匹配字符[a-zA-Z0-9],這里直接使用\w。然后是全局匹配,在最后加上g。難點在于怎么判斷重復。

翻看了犀牛書后,又讀了一遍分組和引用的部分。使用小括號()將字符作為一個最小單元,同時小括號還能記憶這個組合相匹配的字符串。再使用反斜杠\引用前面分組的表達式,數字1表示第一個小括號。這時完成了2個字符重復的要求。最后再使用*來匹配出現0次或n次。這個正則表達式就寫完了。

下面詳細說說分組和引用。

正則表達式的選擇、分組和引用字符表

字符 含義
| 選擇,匹配的是該符號左邊的子表達式或右邊的子表達式
(...) 組合,將幾個項組合為一個單元,這個單元可通過* + ? | 等符號加以修飾,而且可以記住和這個組合相匹配的字符串以提供伺候的引用使用
(?:...) 只組合,把項組合到一個段元,但不記憶與該組相匹配的字符
\n 和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式(也有可能是嵌套的),組索引是從左到右的左括號數,(?:形式的分組不編碼

這篇文章就介紹到這了,希望大家以后多多支持腳本之家。

相關文章

  • 正則中需要轉義的特殊字符小結

    正則中需要轉義的特殊字符小結

    正則表達式中的特殊字符,就是一些有特殊含義的字符,如“*.txt”中的*,簡單的說就是表示任何字符串的意思
    2012-10-10
  • PHP 正則表達式效率 貪婪、非貪婪與回溯分析(推薦)

    PHP 正則表達式效率 貪婪、非貪婪與回溯分析(推薦)

    先掃盲一下什么是正則表達式的貪婪,什么是非貪婪?或者說什么是匹配優先量詞,什么是忽略優先量詞,好吧,下面通過實例給大家介紹下PHP 正則表達式效率 貪婪、非貪婪與回溯分析,一起看看吧
    2016-12-12
  • 正則表達式的多行模式與單行模式圖文分析

    正則表達式的多行模式與單行模式圖文分析

    這篇文章主要介紹了正則表達式的多行模式與單行模式圖文分析,需要的朋友可以參考下
    2017-04-04
  • ip138中各種客戶端驗證js代碼

    ip138中各種客戶端驗證js代碼

    包括ip驗證,身份證驗證,手機號碼驗證,電話號碼,郵政編碼驗證,域名驗證等,其實好的代碼,都在應用中,大家多去扒代碼吧。
    2009-12-12
  • 正則表達式下全部符號解釋說明

    正則表達式下全部符號解釋說明

    正則表達式下全部符號,對于書寫正則表達式的朋友一定要了解下,才能更好的發揮正則的作用于閱讀別人的代碼,先從基本來。
    2010-07-07
  • 正則表達式匹配任意字符(包括換行符)的寫法

    正則表達式匹配任意字符(包括換行符)的寫法

    在正則中,匹配任意字符,其實寫法網上有很多,但因為各種軟件或程序寫法不支持等原因導致的問題,大家可以多研究。
    2009-08-08
  • 無殤 javascript正則練習器

    無殤 javascript正則練習器

    無殤寫的javascript正則練習器,比較不錯,最后生成替換參數,美中不足的就是替換無法使用,本人也試著修改因為替換參數過多而無法實現,希望會的朋友修正一下
    2007-06-06
  • 讓editplus3 函數模板完全顯示函數

    讓editplus3 函數模板完全顯示函數

    我是常常使用editplus ,主要是它啟動快,文件小,自定義代碼,綠色。發現當用他打開php有一個快捷鍵ctrl+F11可以打開函數列表,也就是文件內所有的函數名會顯示在列表中,雙擊會選中函數,非常方便
    2012-10-10
  • javascript正則表達式基礎篇

    javascript正則表達式基礎篇

    這篇文章主要是介紹javascript正則表達式的一些基礎知識,主要是介紹javascript的正則書寫方法與常用實例,需要的朋友可以參考下
    2013-02-02
  • Email正則表達式日常整理大全

    Email正則表達式日常整理大全

    正則表達式在項目中經常會用到,特別email郵箱驗證在注冊用戶信息時經常是必填項,下面由腳本之家小編給大家分享Email正則表達式日常整理,需要的朋友可以參考下
    2015-09-09

最新評論

福建体育彩票时时彩11