嵌套捕获组结果
Nested capturing groups result
如何获得这样的数组
[
0: [ "first", "value", "1" ],
1: [ "second", "value", "2" ],
2: [ "third", "value", "3" ]
]
甚至更好
[ "first", "value", "1", "second", "value", "2", "third", "value", "3" ]
从字符串
"first.value[1].second.value[2].third.value[3]"
依赖于单个 RegEx.exec() 运行?
我试过这个:
regex = /'.*(['w]+)'.(['w]+)'[(['d]*)']/g;
var str = "first.value[1].second.value[2].third.value[3]";
result = regex.exec(str);
但我无法获得子捕获组(如第一个例子)。
PS - 我想为两种类型的结果(平面数组或嵌套数组)获取正则表达式s
我会使用split
:
var str = "first.value[1].second.value[2].third.value[3]";
var res = str.split(/']'.?|'[|'./)
如果编辑的结果是你所追求的
[ "第一"、"值"、"1"、"第二"、"值"、"2"、"第三"、"值"、"3" ]
然后你可以使用一个非常简单的正则表达式。
/('w+)/g
实现第一个效果的最干净方法是需要一些数组操作,因为正则表达式无法返回嵌套结构。
您可以使用上面的正则表达式 ( /('w+)/g
) 获取一个 matched
数组,并通过以下内容运行它:
var finalArr= [];
for (var i= 1, j= 0; i < matched.length; i += 3) {
finalArr[j] = match.slice(i, 3);
j++;
}
按照你的模式思路,你可以使用这样的正则表达式:
(.*?)'.(.*?)'[('d+)']'.?
工作演示
比赛信息
MATCH 1
1. [0-5] `first`
2. [6-11] `value`
3. [12-13] `1`
MATCH 2
1. [15-21] `second`
2. [22-27] `value`
3. [28-29] `2`
MATCH 3
1. [31-36] `third`
2. [37-42] `value`
3. [43-44] `3`
string.match(/('w+)/g)
字符串上的 match 方法可以生成您正在寻找的数组。只需用'w
提取单词:
var regex = /('w+)/g;
var str = "first.value[1].second.value[2].third.value[3]";
var arr = str.match(regex)
document.querySelector('pre').innerHTML = JSON.stringify(arr, 0, 4);
<pre></pre>
您可以
分两步尝试,使用].
拆分,然后下一步使用.
var str = "first.value[1].second.value[2].third.value[3]";
var tempArr = (str+'.').replace(/'[/g,'.').split('].');
var finalArr = tempArr.map(function(v){return v.split('.');});
//result: [["first", "value", "1"], ["second", "value", "2"], ["third", "value", "3"], [""]]
相关文章:
- Sequelize和嵌套结果
- 如何产生结果Javascript嵌套缺陷
- 嵌套在WHILE循环中的IF语句的结果混淆了我(Javascript)
- 我无法通过AJAX获得嵌套的JSON结果
- 在 Sails.js(吃水线)中的嵌套字段(关系内)上的搜索结果
- 从嵌套动画返回结果
- 使用内部示例解析嵌套的 JSON 结果
- 如何返回嵌套承诺的结果
- 嵌套捕获组结果
- 为什么我在嵌套的循环中得到一个奇怪的结果
- 从嵌套的异步 ajax 调用返回结果
- 只显示“;没有结果”;在AngularJS中使用嵌套ng repeat时一次
- 用于显示错误结果的JavaScript嵌套
- AngularJS我正在尝试计算嵌套ng重复中包含的许多输入(ng模型)的结果
- 在将查询的结果传递到模板时,如何包含嵌套的Parse对象
- 从嵌套函数返回getJSON结果
- 带有意外结果的嵌套z索引分层
- MongoDB嵌套查询只返回最近发生的结果
- 在提交后显示http请求的嵌套结果
- Javascript: Async嵌套函数在其他Async函数中会产生意想不到的结果