无限语言的正则表达式

时间:2013-05-02 21:48:31

标签: regex computer-science theory regular-language

我对正则表达式感到困惑。可以有一个识别无限语言的正则表达式,还是所有正则表达式都能识别有限语言?

1 个答案:

答案 0 :(得分:6)

绝对可以构建识别无限语言的正则表达式。例如,简单正则表达式a*匹配无限语言

  

{ε,a,aa,aaa,aaaa,...}

星号运算符在正则表达式中是必不可少的,以使它们能够识别无限的字符串集。

确实,所有有限语言都是规则的,但并非所有常规语言都是有限的(如上所示)。形式语言理论告诉我们,有很多语言是无限但不规则的(例如{0 n 1 n |n≥0}),所以你不能总是为任意无限的语言写一个正则表达式。

希望这有帮助!