js正則裡的分組匹配

2021-09-11 07:39:33 字數 1079 閱讀 8616

參考博文

var str = 'kid is kid'

var reg = /(\w) is \1/

reg.test(str) == true

這裡的正規表示式裡的'\1'相當於前面的 (\w) =>即乙個分組;這裡的\1就

表示匹配的第乙個分組;

var str = 'aaaabbbbcccc';

var reg = /(\w)/g;

var reg2 = /(\w)\1/g;

str.match(reg) =>["aa","aa","bb","bb","cc","cc"]

這裡是每兩個字母作為乙個組匹配出來,得到這樣的結果

str.match(reg2) =>["aaaa", "bbbb", "cccc"]

這裡是因為'\1'就相當於第乙個匹配組,且匹配的內容需要一樣,

所以如果str ="aaabbbccc"; 那麼str.match(reg2) = null

因為第乙個組和\1同時進行匹配的話,無法找到可以匹配的'xxyy'這種字串

正則捕獲到的結果會被儲存起來,每乙個分組捕獲的內容會從1開始被編號儲存

var reg = /(\d)-(\d)-(\d)/;

var datestr = '2018-04-18';

reg.test(datestr); //true //這一步是需要有的,下面的**才會有效

regexp.$1 //2018

regexp.$2 //04

regexp.$3 //18

下面的這種處理日期格式的還是比較實用的

var datestr = '2018/04/18';

var reg = /(\d)\/(\d)\/(\d)/;

datestr = datestr.replace(reg, '$1-$2-$3') //"2018-04-18"

雖然datestr.replace(/\//g,'-')這句**也可以實現相同的結果,還比較簡單,但是

就覺得上面的正則方式的**很帥;

JS正規表示式的分組匹配

什麼是分組 通俗來說,我理解的分組就是在正規表示式中用 包起來的內容代表了乙個分組,像這樣的 var reg d reg.test 12 true 這裡reg中的 d 就表示乙個分組,匹配兩位數字 分組內容的的形式 乙個分組中可以像上面這樣有乙個具體的表示式,這樣可以優雅地表達乙個重複的字串 hah...

正則分組和邊界匹配

測試匹配整個字串,然後找出符合字串當中匹配子正規表示式的子字串 例如 匹配只有3到5個數字,只有兩個 public class fenzu a z string s 123aa 3434bb 234ccc 00 matcher m p.matcher s 分組查詢是找出滿足全部正規表示式的條件中之後...

js 正則匹配

isnumber 是否為數字 regexps.isnumber d d isint 是否為整形 regexps.isint d istime 是否為時間格式 regexps.istime d d d s d d d isdate 是否為日期格式 regexps.isdate d d d isemai...