正規表示式圓括號和非捕獲性圓括號

2021-08-21 16:37:31 字數 1092 閱讀 7710

(x) 捕獲性圓括號:匹配x,並捕獲匹配項。

(?:x) 非捕獲性圓括號: 匹配x,但是不捕獲匹配項。

正規表示式一般情況下的匹配道德字串稱為分組0,按照匹配項中圓括號出現的順序會獲得分組1,分組2……等等

例如:

console.log(/([0-9])/.exec('3 + 4'));

console.log(/(?:[0-9])/.exec('3 + 4'));

console.log(/[0-9]/.exec('3 + 4'));

console.log(/([0-9])(\s)/.exec('3 + 4'));

//輸出

//["3", "3"] 後邊的 3 就是捕獲組所獲取的,最後乙個例子是有兩個捕獲組所以會有三個元素(包含分組0)

//["3"]

//["3"]

//["3 ", "3", " "]

補充: 當圓括號後跟有*時,那捕獲組獲得的是最後乙個值,示例**:

var str = 'for more information, see chapter 3.4.5.1';

var re = /see (chapter \d+(\.\d)*)/i;

var found = str.match(re);

console.log(found);

// logs [ 'see chapter 3.4.5.1',

// 'chapter 3.4.5.1',

// '.1',

// index: 22,

// input: 'for more information, see chapter 3.4.5.1' ]

// 'see chapter 3.4.5.1' 是整個匹配。

// 'chapter 3.4.5.1' 被'(chapter \d+(\.\d)*)'捕獲。

// '.1' 是被'(\.\d)'捕獲的最後乙個值。

// 'index' 屬性(22) 是整個匹配從零開始的索引。

// 'input' 屬性是被解析的原始字串。

Python 正規表示式 或者 圓括號

或者 import re m re.search abc xyz xyz abc xyz 兩個中間取乙個,or if m is not none print m.group else print not find 圓括號 import re abc abcabc abc abcc m re.sear...

精通正規表示式三 非捕獲型括號

在精通正規表示式一中講到了反向引用,其中的括號就是捕獲型括號,它具有分組和捕獲的作用,但是,有時候我們需要用到非捕獲型括號,比如我已經寫好了乙個程式,現在我要擴充套件正規表示式的功能,比如加乙個 這樣並沒有影響原來的功能而且能匹配比原來跟多的東西,但是,它打亂了原來的組的反向引用順序,如果恰好這個分...

正規表示式 非捕獲分組

目前為止,總共介紹了括號的三種用途 分組,將相關的語速歸攏到一起,構成單個元素 多選結構,規定可能出現的多個子表達示 引用分組,將子表示式匹配的文字儲存起來,供之後引用。這三種用途並不是彼此獨立的,而是互相重疊的 單純的分組可以視為 只包含乙個多選分支的多選結構 整個多選結構也會被視為單個元素,可以...