使用正则表达式来解析方括号之间的信息

时间:2018-07-11 23:54:17

标签: regex

我正在尝试使用正则表达式解析信息,该正则表达式的布局类似于json。我正在做的部分问题涉及识别成对的大括号。

group = {
    field = element
    innergroup = {
        field = element
        field = element
    }
    field = element
    innergroup = { field = element }
}

array = { field = element }

解决此问题的第一步是识别内部组,将内部组括在没有大括号的材料之间。在上面的示例中:

innergroup = {
    field = element
    field = element
}
#and
innergroup = { field = element }
#and
array = { field = element }

我试图通过使用一些不同的regex命令来找到这些内部组。这是我最接近的。

\{.*?\}

我知道这与“。”有关。字符表示除换行符外的所有字符。我还必须找出一种排除大括号中的字符的方法。

[更新]

以前的问题已经问过,当大括号都在一行上时如何执行此操作。但是,这不能解决该内部组。

innergroup = {
    field = element
    field = element
}

其他问题也没有考虑到花括号很多的事实,因此其他正则表达式函数会发现类似的情况。

group = {
    field = element
    innergroup = {
        field = element
        field = element
    }

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

使用否定字符类:

\{[^{}]*?\}

[^{}]的意思是“除大括号外的其他任何字符”(无需转义)。

请参见live demo