語法
.表示除\n之外的任意字符+匹配前面的子表達式一次或多次。(?<=exp)是以exp開頭的字符串, 但不包含本身。(?=exp)就匹配為exp結尾的字符串, 但不包含本身。
注:語句外面的括號不可省略g匹配全局
實現
1、獲取括號的內容,包換括號
var str="123{456}hhh[789]zzz[yyy]bbb(90ba)kkk"; var regex1 = /\((.+?)\)/g; // () 小括號 var regex2 = /\[(.+?)\]/g; // [] 中括號 var regex3 = /\{(.+?)\}/g; // {} 花括號,大括號 // 輸出是一個數組 console.log(str.match(regex1)); //['(90ba)'] console.log(str.match(regex2));//['[789]', '[yyy]'] console.log(str.match(regex3));//['{456}']
2、獲取括號的內容,不包含括號
也就是將\(與(?<=\()替換,\)與(?=\))替換,其他括號同理。
var str2="123{456}hhh[789]zzz[yyy]bbb(90ba)kkk"; var regex11 = /(?<=\()(.+?)(?=\))/g; // () 小括號 var regex22 = /(?<=\[)(.+?)(?=\])/g; // [] 中括號 var regex33 = /(?<=\{)(.+?)(?=\})/g; // {} 花括號,大括號 // 輸出是一個數組 console.log(str2.match(regex11)); //['90ba'] console.log(str2.match(regex22));//['789', 'yyy'] console.log(str2.match(regex33));//['456']
