濮阳杆衣贸易有限公司

主頁 > 知識庫 > 淺談正則表達式中的分組和引用實現(xiàn)方法

淺談正則表達式中的分組和引用實現(xiàn)方法

熱門標簽:深圳400電話辦理那家好 清遠陽山400電話號碼如何申請 百度地圖標注飯店位置怎么 施工地圖標注怎么做 襄陽房產(chǎn)電銷機器人招商 安徽移動外呼系統(tǒng) 個性化地圖標注在線 怎么在高德地圖標注行走軌跡 百度地圖標注名編輯

問題

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

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

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

我的答案

先給出我的答案吧:

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

說明

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

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

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

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

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

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

您可能感興趣的文章:
  • 正則表達式之分組的回溯引用問題
  • 詳解JavaScript正則表達式之分組匹配及反向引用
  • 正則表達式分組與引用的使用

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

巨人網(wǎng)絡通訊聲明:本文標題《淺談正則表達式中的分組和引用實現(xiàn)方法》,本文關鍵詞  淺談,正則,表達式,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談正則表達式中的分組和引用實現(xiàn)方法》相關的同類信息!
  • 本頁收集關于淺談正則表達式中的分組和引用實現(xiàn)方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    抚松县| 昌都县| 都安| 福清市| 潜江市| 获嘉县| 舞钢市| 永城市| 新民市| 盖州市| 建昌县| 银川市| 三台县| 闽清县| 民勤县| 汉沽区| 原阳县| 泾源县| 松江区| 色达县| 郧西县| 佛坪县| 湟中县| 锡林郭勒盟| 辰溪县| 纳雍县| 商城县| 十堰市| 象山县| 黑龙江省| 扎赉特旗| 新安县| 二连浩特市| 锡林浩特市| 平和县| 保定市| 三台县| 五大连池市| 龙州县| 福清市| 南城县|