gpt4 book ai didi

javascript - 用于匹配特定数组增量的 JS Regex 忽略字符串和单独增量

转载 作者:行者123 更新时间:2023-11-30 16:02:42 25 4
gpt4 key购买 nike

我有以下名称属性的输入字段:

carousels['components'][0][0][title]
carousels['components'][0][1][title]
carousels['components'][0][2][title]

carousels['components'][1][0][title]
carousels['components'][1][1][title]
carousels['components'][1][2][title]

carousels['components'][2][0][title]
carousels['components'][2][1][title]
carousels['components'][2][2][title]

我正在尝试匹配最后的 [ number ] 例如这部分:

carousels['components'][2][THIS][title]
carousels['components'][2][THIS][title]
carousels['components'][2][THIS][title]

忽略其余部分

这是我的正则表达式模式:

/(\[[^components\]])+(\[*])/

当我只想要最后一个时,这会影响括号内的两个整数。此正则表达式也无法识别第一个数组键“组件”的特定要求

在此处进行实时正则表达式测试:

http://www.regexpal.com/?fam=94974

最佳答案

如果你想得到last [ + digits + ] , 你可以使用

/^.*\[(\d+)\].*$/

参见 regex demo

回溯将有助于准确获取 [digits] 的最后一次出现。获取第 1 组值。

var re = /^.*\[(\d+)\].*$/; 
var str = 'carousels[\'components\'][0][0][title]\ncarousels[\'components\'][0][1][title]\ncarousels[\'components\'][0][2][title]\n\ncarousels[\'components\'][1][0][title]\ncarousels[\'components\'][1][1][title]\ncarousels[\'components\'][1][2][title]\n\ncarousels[\'components\'][2][0][title]\ncarousels[\'components\'][2][1][title]\ncarousels[\'components\'][2][2][title]';

for (var s of str.split("\n")) {
var res = (m=re.exec(s)) ? m[1] : "";
if (res) {
document.body.innerHTML += s + ": " + res + "<br/>";
}
}

更新:

要获得第一个 [ + digits + ],您需要对第一个点使用惰性匹配:

/^.*?\[(\d+)\].*$/
^ - Here, the ? will make matching lazy/reluctant
(it will match any 0+ chars other than a newline as few as possible)

参见 another regex demo .

关于javascript - 用于匹配特定数组增量的 JS Regex 忽略字符串和单独增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37477141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com