正则表达式中,如何获取括号中的内容,不包含括号和单引号
语法
.
表示除\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']