Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的正则表达式问题_Javascript_Regex_Node.js - Fatal编程技术网

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})