首页 > 正则表达式比配字符串,匹配[******]的内容

正则表达式比配字符串,匹配[******]的内容

比如说[43255]gege[1343fdg_32]gew[ge43]类似这样的多个字符串,要求能够匹配[]里面的字符串并输出该字符串。用正则表达式怎么查找匹配的数据。代码不限~


如果想要只获取[]里面的内容不包括'[',']'符号,需要用到正则的零宽断言
/(?<=\[).+?(?=\])/
加粗部分为零宽断言语法,不过好像不是所有语言都支持
其中(?<=\[)叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配‘[’字符
(?=\])叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配‘]’字符


使用的正则是

\[([^\]]+)\]

javascript code:

jsvar str = "[43255]gege[1343fdg_32]gew[ge43]";
var re = /\[([^\]]+)\]/g;

var myArray;
while ((myArray = re.exec(str)) !== null) {
    console.info(myArray[1]);
}

output:

43255
1343fdg_32
ge43

想办法获取子匹配就可以了

\[([^\]\[]+)\]

javascript:

var matchs = "[43255]gege[1343fdg_32]gew[ge43]".match(/\[([^\]\[]+)\]/g);
for(var i=0; i<matchs.length; i++){
    var m = /[^\[\]]+/.exec(matchs[i])
    console.log(m[0])
}
【热门文章】
【热门文章】