分組

分組其實(shí)就是講較長的匹配表達(dá)式用括號括起來,然后將這一部分視為一個整體進(jìn)行操作.

對單個字符的重復(fù)匹配需要在字符后面加上限定符,如果是多個字符的重復(fù)匹配,則可以把多個字符作為一個分組在分組后面加上限定符即可

常用分組語法:


1234.png

捕獲:對匹配到的數(shù)據(jù)進(jìn)行暫存
零寬斷言:該表達(dá)式只匹配一個位置標(biāo)記,所匹配的結(jié)果并不會顯示出來,因此所匹配到的字符串寬度為0
注釋:便于閱讀

ps

1分組0對應(yīng)整個正則表達(dá)式
2 組號分配過程會從左到右掃描兩遍,第一遍給未命名分組進(jìn)行分配,第二遍給命名分組分配,因此所有命名的組號都大于未命名的組號
3 可以使用(?:exp)的方法來剝奪一個分組對組號的分配權(quán)

例子
將(ing)整體作為一個分組進(jìn)行匹配,限定匹配一次

lily is singing while joe is danceing
\b[a-z]+(ing){1}\b
共找到 2 處匹配:
singing
danceing

將^(\d{2}.){3}作為一個分組,匹配三次

10.10.88.18
^(\d{2}\.){3}\d{2}$
共找到 1 處匹配:
10.10.88.18

\1 可以引用(\w+)中匹配到的內(nèi)容

long long ago
\b(\w+)\b\s+\1\b
共找到 1 處匹配:
long long

由于使用了(?:exp)語法,(?:\w+)沒有對應(yīng)的分組編號,\1 不會獲取到分組內(nèi)容,無法進(jìn)行匹配

long long ago
\b(?:\w+)\b\s+\1\b
(沒有匹配)

零寬斷言(?=ing\b)匹配到的內(nèi)容不作為匹配結(jié)果進(jìn)行顯示

lily is singing while joe is dancing
\b\w+(?=ing\b)
共找到 2 處匹配:
sing
danc

零寬斷言}(?=@qq.com)匹配到的內(nèi)容不作為匹配結(jié)果進(jìn)行顯示

1540699763@qq.com lalalalal2012@163.com
\d{7,11}(?=@qq.com)|\w+(?=@163.com)
共找到 2 處匹配:
1540699763
lalalalal2012
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式到底是什么東西?字符是計算機(jī)軟件處理文字時最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,271評論 0 9
  • http://www.jb51.net/tools/zhengze.html 正則表達(dá)式30分鐘入門教程 版本:v...
    nullleaf閱讀 662評論 0 2
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請諒解!?。?本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它...
    阿杰Alex閱讀 1,557評論 0 10
  • 轉(zhuǎn)自: JS正則表達(dá)式一條龍講解,從原理和語法到JS正則、ES6正則擴(kuò)展,最后再到正則實(shí)踐思路 溫馨提示:文章很長...
    前端渣渣閱讀 1,904評論 1 32
  • 早在去年 3D 掃描公司 Matterport 就因獲得一筆融資而得以迅速發(fā)展,現(xiàn)在它儼然已經(jīng)成為了美國沉浸式媒體...
    曉曉13號閱讀 410評論 0 0

友情鏈接更多精彩內(nèi)容