gpt4 book ai didi

javascript - 可以存在递归正则表达式吗?

转载 作者:行者123 更新时间:2023-12-02 06:42:53 25 4
gpt4 key购买 nike

我试图获得一个匹配 x 个左大括号的 javascript 正则表达式,然后匹配 x 个右大括号,同时允许它们嵌套在彼此之间。

例如,它将匹配:“{a {q}}”但不是“{ a { q } { }”或者“{ } } { } {”

话虽这么说,但我不知道如何使用正则表达式来做到这一点,甚至不知道它是否可能。

最佳答案

对此的简短回答是否定的。正则表达式是 non-context-free grammar ,所以它不能用真正的正则表达式来完成。但是,您可以寻找特定的(非任意的)嵌套模式。

http://blogs.msdn.com/b/jaredpar/archive/2008/10/15/regular-expression-limitations.aspx

这里的递归问题本质上与你 can't correctly parse HTML with regex 的原因相同。 .与 XML 一样,您所描述的结构是一种上下文无关的语法;注意它与 first example from the Wikipedia article 非常相似.

我听说有扩展正则表达式以提供对任意嵌套元素的支持的引擎,但这会使它们成为真正的正则表达式之外的东西。无论如何,我不知道有任何这样的 JavaScript 库。我认为您想要的是某种基于字符串操作的解析器。

关于javascript - 可以存在递归正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com