如何在ruby中验证平衡括号的正则表达式?
请帮助我验证字符串的平衡括号。 下面是我的测试字符串如何在ruby中验证平衡括号的正则表达式?,ruby,regex,Ruby,Regex,请帮助我验证字符串的平衡括号。 下面是我的测试字符串 The industry [standard] for (transcribing) an audio file takes one hour for every ) 5 minutes of audio. 不幸的是,使用正则表达式无法确定这一点。这是因为正则表达式识别正则语言,而嵌套模式(这基本上就是您在这里要求的)不是正则语言的一部分 ”“关于这个问题,他说得再详细一点 编辑:结果表明Ruby的正则表达式引擎确实支持这一点。参见于浩的答案
The industry [standard] for (transcribing) an audio file takes one hour for every ) 5 minutes of audio.
不幸的是,使用正则表达式无法确定这一点。这是因为正则表达式识别正则语言,而嵌套模式(这基本上就是您在这里要求的)不是正则语言的一部分 ”“关于这个问题,他说得再详细一点
编辑:结果表明Ruby的正则表达式引擎确实支持这一点。参见于浩的答案。以下正则表达式取自Ruby编程:
re=/
\A
(?
{
(
除了大括号以外的任何东西
|#……或。。。
\g#一个嵌套的大括号表达式
)*
}
)
\Z
/x
\g
这里是递归使用的。这对于普通正则表达式是正确的,但是不要忘记Ruby的正则表达式引擎支持许多扩展。很好,我没有考虑到这一点(实际上是从你的帖子中了解到的:))欢迎使用堆栈溢出。不幸的是,堆栈溢出不是一种代码编写服务。相反,我们帮助您调试您编写的代码。请向我们展示您尝试过的代码,我们将很乐意帮助您修复它。实际上,您的问题没有满足基本要求,并且是离题的,所以请添加代码。
re = /
\A
(?<brace_expression>
{
(
[^{}] # anything other than braces
| # ...or...
\g<brace_expression> # a nested brace expression
)*
}
)
\Z
/x