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

时间:2015-09-03 06:50:51

标签: 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 

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

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

1 个答案:

答案 0 :(得分:4)

您无法使用正则表达式解析嵌套括号,因为您需要无限状态才能执行此操作。所以答案是否定的。您要找的是context-free grammars