Regex 可能吗?匹配完全相同的开口数量&;闭合大括号

Regex 可能吗?匹配完全相同的开口数量&;闭合大括号,regex,qt,Regex,Qt,我不是正则表达式专家。我正在尝试创建一个正则表达式,它将匹配完全相同数量的大括号和大括号,但我不知道如何做 例如: nothing: important, a b { c {{{ a another {{ nothing }} }}} } 或: 问题是我不知道我要事先准备多少牙套。在第一个示例中,我需要获取文本{c{{{{a另一个{{nothing}}}}}。在第二个例子中,我需要得到{{error,忘记结束括号}} 甚至可以创建一个匹配规则来实现这一点吗?(我使用的是Qt正则表达式引擎)。这

我不是正则表达式专家。我正在尝试创建一个正则表达式,它将匹配完全相同数量的大括号和大括号,但我不知道如何做

例如:

nothing: important, a b { c {{{ a another {{ nothing }} }}} }
或:

问题是我不知道我要事先准备多少牙套。在第一个示例中,我需要获取文本
{c{{{{a另一个{{nothing}}}}}
。在第二个例子中,我需要得到
{{error,忘记结束括号}}


甚至可以创建一个匹配规则来实现这一点吗?(我使用的是Qt正则表达式引擎)。

这个问题不能用正则语法解决=>它不能用正则表达式解决


然而,从Dirk Vollmar的评论来看,某些正则表达式引擎具有扩展功能,例如.NET引擎,它能够使用所谓的匹配括号。

我会尝试使用字符串函数。类似于PHP的strpos()。即使可以使用正则表达式,最终也会得到一个又长又脏的正则表达式,这会让你在需要修改它的时候恨自己。最好使用堆栈。括号的间距是否总是与示例中的一样好?我认为使用正则表达式可以很容易地解决这个问题,只需重复匹配表达式“{(*.)}”的输出,但这比使用简单的字符串函数更糟糕。没错,这样的语言是不规则的。但是,某些正则表达式引擎具有扩展功能,例如.NET引擎,它能够使用所谓的“平衡组定义”匹配括号。遗憾的是,QT不支持(,”,请注意,一般情况下,regexp不能用于检查平衡括号或标记。但是,可以编写一个与嵌套括号或标记正确匹配的regexp,但前提是嵌套级别的数量固定且已知。如果
one { two {{ error, forgot ending brace }}