淺談?wù)齽t表達(dá)式中的分組和引用實(shí)現(xiàn)方法
問(wèn)題
在外刊君讀者群中看到有人提出這樣的一個(gè)需求:
把字符串切成連續(xù)相同字符的正則怎么寫(xiě)?比如abbcccdddd切成a,bb,ccc,dddd
之前我對(duì)正則表達(dá)式也是略有研究,想嘗試一下。其實(shí)我對(duì)正則表達(dá)式的學(xué)習(xí)基本完全來(lái)源于犀牛書(shū)的第10章,真正看懂這一章,我覺(jué)得操作正則表達(dá)式應(yīng)該不在話下。
我的答案
先給出我的答案吧:
'abbccddd'.match(/(\w)\1*/g) // ["a", "bb", "cc", "ddd"]
說(shuō)明
拿到這個(gè)問(wèn)題,首先要匹配字符[a-zA-Z0-9]
,這里直接使用\w
。然后是全局匹配,在最后加上g。難點(diǎn)在于怎么判斷重復(fù)。
翻看了犀牛書(shū)后,又讀了一遍分組和引用的部分。使用小括號(hào)()將字符作為一個(gè)最小單元,同時(shí)小括號(hào)還能記憶這個(gè)組合相匹配的字符串。再使用反斜杠\引用前面分組的表達(dá)式,數(shù)字1表示第一個(gè)小括號(hào)。這時(shí)完成了2個(gè)字符重復(fù)的要求。最后再使用*來(lái)匹配出現(xiàn)0次或n次。這個(gè)正則表達(dá)式就寫(xiě)完了。
下面詳細(xì)說(shuō)說(shuō)分組和引用。
正則表達(dá)式的選擇、分組和引用字符表
字符 | 含義 |
---|---|
| | 選擇,匹配的是該符號(hào)左邊的子表達(dá)式或右邊的子表達(dá)式 |
(...) | 組合,將幾個(gè)項(xiàng)組合為一個(gè)單元,這個(gè)單元可通過(guò)* + ? | 等符號(hào)加以修飾,而且可以記住和這個(gè)組合相匹配的字符串以提供伺候的引用使用 |
(?:...) | 只組合,把項(xiàng)組合到一個(gè)段元,但不記憶與該組相匹配的字符 |
\n | 和第n個(gè)分組第一次匹配的字符相匹配,組是圓括號(hào)中的子表達(dá)式(也有可能是嵌套的),組索引是從左到右的左括號(hào)數(shù),(?:形式的分組不編碼 |
這篇文章就介紹到這了,希望大家以后多多支持我們。
欄 目:正則表達(dá)式
本文標(biāo)題:淺談?wù)齽t表達(dá)式中的分組和引用實(shí)現(xiàn)方法
本文地址:http://mengdiqiu.com.cn/a1/zhengzebiaodashi/11128.html
您可能感興趣的文章
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)例
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python爬蟲(chóng)正則表達(dá)式之處理?yè)Q行符
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方法
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11python爬蟲(chóng)正則表達(dá)式之處理?yè)Q行符
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)