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

Can a regular expression itself be parsed with a regular expression?

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
rere ="" # the regular expression of regular language
match1 = re.match(rere,"[a-z]+@[a-z]+.com") # True
match2 = re.match(rere,")az[") # False

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

如果是,这个表达式是什么样子的?如果不是,为什么?


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