0

可能重复:
正则表达式匹配外括号

是否有一个正则表达式会返回:

[aaaa[aaa]aaaa]

aaa"fields":[aaaa[aaa]aaaa]aaa

这是在从还包含 XPath 的 JSON 字符串中获取数组的上下文中。XPath 与数组一样具有左方括号和右方括号,因此检索由左方和右方括号分隔的字符串的普遍问题,它也包含作为子字符串......我希望这是有道理的。

我认为你需要跟踪打开的方括号对的数量,只有当它达到 0 时,你才会返回字符串的那部分。这需要一个循环,但我想知道是否有纯正则表达式解决方案。

我的第一次尝试是:

cleaned_defintion = defintion.gsub(/\[\d*\]/,"")

它将这样的 XPath 转换为:html[1]/body[1]/form[1]/div[7]/div[2]/input[1]但这html/body/form/div/div/input将使 xpath 带有以下元素:

td[@width='113']

然后打破:

json_fields = cleaned_defintion.match(/fields":(\[[^\]]*\])/)

这个问题有一个使用迭代方法的答案: Best way to find nested opening and closing tags

4

0 回答 0