国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > regex > 正文

淺談?wù)齽t表達(dá)式中的分組和引用實(shí)現(xiàn)方法

2020-01-20 21:33:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

問(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ù),(?:形式的分組不編碼

這篇文章就介紹到這了,希望大家以后多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁陵县| 延安市| 梁平县| 阿拉善右旗| 花垣县| 大悟县| 吉木乃县| 龙胜| 江都市| 东乡| 馆陶县| 漳平市| 江川县| 宣武区| 金湖县| 奈曼旗| 桂东县| 北海市| 察雅县| 南雄市| 泰顺县| 禄劝| 赣榆县| 安新县| 监利县| 波密县| 孝义市| 婺源县| 巩义市| 孝感市| 山阳县| 沙河市| 宝清县| 克山县| 贵德县| 洛川县| 新郑市| 常宁市| 石楼县| 济阳县| 江安县|