首页 > 解决方案 > 正则表达式捕获字符串内的多个数组索引文字

问题描述

对于外面的人来说可能很简单,但我想构建一个搜索这个字符串的正则表达式:

foo[0][2]

并返回

foo
0
2

在匹配数组中

到目前为止我想出的是

\([a-z]*)(\[(\d)\])/g

只回馈

0: "foo[0]"
1: "foo"
2: "[0]"
3: "0"

它不会重复到我的字符串中的下一个字面量数组,因此不会命中该[2]部分。

我不是正则表达式忍者,希望能得到一些帮助以达到我需要的正确表达式。

谢谢

标签: javascriptregex

解决方案


我认为您正在寻找这种模式:([a-z]+)|(\[\d\])

console.log('foo[0][2]'.match(/([a-z]+)|(\[\d\])/g));


如果你不想要这些[]零件,你可以试试这个:

console.log('foo[0][2]'.match(/([a-z]+)|(\d)/g));


推荐阅读