Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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 - Fatal编程技术网

Javascript 正则表达式捕获字符串中的多个数组索引文本

Javascript 正则表达式捕获字符串中的多个数组索引文本,javascript,regex,Javascript,Regex,对于某些人来说可能非常简单,但我想构建一个正则表达式来搜索这个字符串: foo[0][2] 返回 foo 0 2 在匹配数组中 到目前为止,我已经想出了一个办法 \([a-z]*)(\[(\d)\])/g 这只会给你回报 0: "foo[0]" 1: "foo" 2: "[0]" 3: "0" 它不会重复到字符串中的下一个文本数组中,因此不会命中[2]部分 我不是regex忍者,如果能帮我找到正确的表达方式,我将不胜感激 谢谢我想你在寻找这个模式:([a-z]+)|(\[\d\]) c

对于某些人来说可能非常简单,但我想构建一个正则表达式来搜索这个字符串:

foo[0][2]
返回

foo
0
2
在匹配数组中

到目前为止,我已经想出了一个办法

\([a-z]*)(\[(\d)\])/g
这只会给你回报

0: "foo[0]"
1: "foo"
2: "[0]"
3: "0"
它不会重复到字符串中的下一个文本数组中,因此不会命中
[2]
部分

我不是regex忍者,如果能帮我找到正确的表达方式,我将不胜感激


谢谢

我想你在寻找这个模式:
([a-z]+)|(\[\d\])


console.log('foo[0][2]”。匹配(/([a-z]+)|(\[\d\])/g)我想您正在寻找这种模式:
([a-z]+)|(\[\d\])


console.log('foo[0][2]”。匹配(/([a-z]+)|(\[\d\])/g)如果您使用模式
([a-z]*)(\[(\d)\])
,您可以使用while循环来获取第一个和第三个捕获组,但是请注意,使用
[a-z]*
匹配0+次,也可以匹配
[0][2]
中的部分

const regex=/([a-z]*)(\[(\d)\])/g;
const str=`foo[0][2]`;
让m;
让结果=[];
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
如果(m[1]!==“”)结果。推送(m[1]);
如果(m[3]!==“”)结果。推送(m[3]);
}

控制台日志(结果)如果您使用模式
([a-z]*)(\[(\d)\])
,您可以使用while循环来获取第一个和第三个捕获组,但是请注意,使用
[a-z]*
匹配0+次,也可以匹配
[0][2]
中的部分

const regex=/([a-z]*)(\[(\d)\])/g;
const str=`foo[0][2]`;
让m;
让结果=[];
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
如果(m[1]!==“”)结果。推送(m[1]);
如果(m[3]!==“”)结果。推送(m[3]);
}
控制台日志(结果)