比如说[43255]gege[1343fdg_32]gew[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])
}
如果想要只获取[]里面的内容不包括'[‘,’]’符号,需要用到正则的零宽断言
/(?<=\[).+?(?=\])/
加粗部分为零宽断言语法,不过好像不是所有语言都支持
其中(?<=\[)叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配‘[’字符
(?=\])叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配‘]’字符
使用的正则是
\[([^\]]+)\]
javascript code:
js
var 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
正文完