JavaScript中的正则表达式问题
我试图使用正则表达式从字符串中提取数据,但得到的结果是空值 这是我目前的代码JavaScript中的正则表达式问题,javascript,regex,node.js,Javascript,Regex,Node.js,我试图使用正则表达式从字符串中提取数据,但得到的结果是空值 这是我目前的代码 var re = /(\[cid=(?:[0-9]*)(?:(?:,\[[^]]*\][^]]*)?|(?:,[^]]*))\])/; var str = '[cid=5555,[CONSTIMG]5555.jpg]The Sample text is awesome'; var m; while ((m = re.exec(str)) != null) { if (m.index === re.lastIn
var re = /(\[cid=(?:[0-9]*)(?:(?:,\[[^]]*\][^]]*)?|(?:,[^]]*))\])/;
var str = '[cid=5555,[CONSTIMG]5555.jpg]The Sample text is awesome';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
}
console.log(m[0]);
我要返回的值为NULL
如果有人能给我指出正确的方向,那将非常有帮助。
提前感谢。您的表达式匹配PCRE正则表达式语法,但不匹配JavaScript,因为JavaScript要求字符类中的方括号用
\
转义。这就是你想要的:
(\[cid=(?:\d*)(?:(?:,\[[^\]]*\][^\]]*)?|(?:,[^\]]*))\])
解释:你想找什么?如果我不知道你在找什么,我就无法帮你找到一个有效的正则表达式。另外,您是否尝试过在类似这样的网站上进行测试?这是因为您的表达式与您的输入不匹配。@David此处显示为有效,请尝试以下
(\[cid=\d*,(?:\[(?:[^\]*\]){1,2})