This question already has answers here:
Is there a regular expression to detect a valid regular expression?

(9个答案)


5年前关闭。




我正在阅读正则表达式解析器的代码,并开始怀疑正则表达式的语法本身是否为正则,并且可以用另一个(非常复杂的)正则表达式表示?
rere = "" # the regular expression of regular language
match1 = re.match(rere, "[a-z]+@[a-z]+.com") # True
match2 = re.match(rere, ")az[") # False

我没有在正则表达式语法中看到任何递归结构,所以我认为这可行吗?

如果是,则表达式是什么样的?
如果没有,为什么?

最佳答案

您不能使用正则表达式解析嵌套的括号,因为这样做需要无限状态。所以答案是否定的。您正在寻找的是context-free grammars

关于regex - 正则表达式本身可以用正则表达式解析吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32368793/

10-11 11:17