请帮我验证字符串的平衡括号。 我的测试字符串在下面。如何验证红宝石中的平衡括号的正则表达式?
The industry [standard] for (transcribing) an audio file takes one hour for every) 5 minutes of audio.
请帮我验证字符串的平衡括号。 我的测试字符串在下面。如何验证红宝石中的平衡括号的正则表达式?
The industry [standard] for (transcribing) an audio file takes one hour for every) 5 minutes of audio.
不幸的是,这是不可能的,以确定使用正则表达式。这是因为正则表达式能够识别常规语言,而嵌套模式(实质上就是您要求的)不是普通语言的一部分。
“Can regular expressions be used to match nested patterns?”详细介绍了该主题。
编辑:原来,Ruby的正则表达式引擎确实支持这一点。见余昊的回答。
这对于常见的正则表达式来说是正确的,但不要忘记Ruby的正则表达式引擎支持许多扩展。 –
好的,我没有考虑到这一点(实际上从你的帖子中学到了这一点:)) – joost
下面的正则表达式是从编程红宝石采取:
re =/
\A
(?<brace_expression>
{
(
[^{}] # anything other than braces
| # ...or...
\g<brace_expression> # a nested brace expression
)*
}
)
\Z
/x
\g<brace_expression>
这里递归使用。
欢迎来到Stack Overflow。不幸的是,堆栈溢出不是一个代码写入服务。相反,我们会帮助您调试您编写的代码。请向我们展示您尝试过的代码,我们很乐意帮助您解决问题。因为你的问题没有达到基本要求,而且是无关紧要的,所以请添加该代码。 –