使用括号表示法提取多维键的正则表达式

问题描述 投票:0回答:1

我需要使用纯正则表达式检索所有密钥

我需要从单词field开始,然后需要捕获所有多个键..

field[somevalue][anothervalue]

但是我需要深入并检索另一个级别,例如:

`field[somevalue][anothervalue][other][some]...`

所以我需要检索 somevalueanothervalueothersome 等,从变量名称 field

开始

我使用这个正则表达式

/^field(?=\[(\w+)](?=\[(\w+)])?)/
从使用括号表示法的 field 变量中提取键..

但我只能检索两个级别。

field[somevalue][anothervalue]
这将正确返回键 somevalueanothervalue

但是我需要深入并检索另一个级别,例如:

`field[somevalue][anothervalue][other][some]...`

输出将为 somevalueanothervalueothersome 等,以变量名称 field

开头

我不想使用这样的循环(多维数组的括号表示法的正则表达式

需要直接通过并在https://regex101.com

使用
regex regex-lookarounds pcre regex-greedy
1个回答
0
投票

通过向后看

field
或上一场比赛结束 (
\G
) 来开始比赛:

(?<=field|\G)\[(.*?)]

参见现场演示

© www.soinside.com 2019 - 2024. All rights reserved.