正则表达式本身可以用正则表达式解析吗?

Neo*_*ang 8 regex parsing regular-language

我正在阅读正则表达式解析器的代码,并开始怀疑正则表达式的语法本身是否是常规的,并且可以用另一个(非常复杂的)正则表达式表达?

rere = "" # the regular expression of regular language
match1 = re.match(rere, "[a-z]+@[a-z]+.com") # True
match2 = re.match(rere, ")az[") # False 
Run Code Online (Sandbox Code Playgroud)

我没有在正则表达式语法中看到任何递归结构,所以我想也许这是可行的?

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

Emi*_*röm 5

您不能使用正则表达式解析嵌套的括号,因为这样做需要无限状态。所以答案是否定的。您要查找的内容称为无上下文语法