什麼是分組
通俗來說,我理解的分組就是在正規表示式中用()包起來的內容代表了乙個分組,像這樣的:
var reg = /(\d)/
reg.test('12'); //true
這裡reg中的(/d)就表示乙個分組,匹配兩位數字
分組內容的的形式
乙個分組中可以像上面這樣有乙個具體的表示式,這樣可以優雅地表達乙個重複的字串
/hahaha/
/(ha)/
這兩個表示式是等效的,但有了分組之後可以更急簡潔。
體格分組中還可以有多個候選表示式,例如
var reg = /i come from (hunan|hubei|zhejiang)/;
reg.test('i come from hunan'); //true
reg.test('i come from hubei'); //true
也就是說在這個分組中,通過|隔開的幾個候選表示式是並列的關係,所以可以把這個|理解為或的意思
分組的分類
分組有四種型別
分組的應用
分組在正則中還算使用的比較廣泛的,我們常用的是捕獲型分組
var reg = /(\d)-(\d)-(\d)/;
var datestr = '2018-04-18';
reg.test(datestr); //true
regexp.$1
//2018
regexp.$2
//04
regexp.$3
//18
結合replace方法做字串自定義替換var datestr = '2018/04/18';
var reg = /(\d)\/(\d)\/(\d)/;
datestr = datestr.replace(reg, '$1-$2-$3') //"2018-04-18"
不過這裡需要注意的是/是需要用\轉義的
反向引用
var reg = /(\w) is \1/
reg.test('kid is kid') // true
reg.test('dik is dik') // true
reg.test('kid is dik') // false
reg.test('dik is kid') // false
var reg = /(\w) is \6/;
reg.test( 'kid is kid' ); //
false
reg.test( 'kid is \6' ); //
true
非捕獲型分組var reg = /(?:\d)-(\d)-(\d)/
var date = '2012-12-21'
reg.test(date)
regexp.$1
// 12
regexp.$2
// 21
正向與反向前瞻型分組var reg = /kid is a (?=doubi)/
reg.test('kid
is a doubi') // true
reg.test('kid
is a shabi') // false
var reg = /kid is a (?!doubi)/
reg.test('kid
is a doubi') // false
reg.test('kid
is a shabi') // true
既然前瞻型分組和非捕獲型分組都不會捕獲,那他們有什麼區別呢?先看例子:
var
reg, str = "kid is a doubi";
reg = /(kid is a (?:doubi))/
reg.test(str)
regexp.$1
// kid is a doubi
reg = /(kid is a (?=doubi))/
reg.test(str)
regexp.$1
// kis is a
也就是說非捕獲型分組匹配到的字串任然會被外層分組匹配到,而前瞻型不會,所以如果你希望在外層分組中不匹配裡面分組的值的話就可以使用前瞻型分組了。
js正規表示式分組捕獲
const reg reg.test 比如去掉 aaa 中的中括號 這裡只是舉個例,可以這樣來處理更複雜的模板字串 const reg a za z let str aaa while reg.test str console.log str str 這裡的 1就是 1 const reg a z ...
JS正規表示式的分組匹配
什麼是分組 通俗來說,我理解的分組就是在正規表示式中用 包起來的內容代表了乙個分組,像這樣的 var reg d reg.test 12 true 這裡reg中的 d 就表示乙個分組,匹配兩位數字 分組內容的的形式 乙個分組中可以像上面這樣有乙個具體的表示式,這樣可以優雅地表達乙個重複的字串 hah...
正規表示式 分組
正規表示式對於單個字元的重複,非常方便。比如 d 表示1個或多個數字,表示重複0次或多次 重複1次或多次 重複0次或1次 重複n次 重複n次或多次 重複n次到m次 指定的字元後加特定的限定符,即可實現單字元的重複,那麼,對於一組字串的重複,正規表示式該如何操作?用小括號來指定子表示式 或稱分組 對指...