2013-05-02 180 views
3

我只是对正则表达式感到困惑。是否有一个能够识别无限语言的正则表达式,或者所有正则表达式都能识别有限的语言?无限语言的正则表达式

回答

6

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

{&小量,A,AA,AAA,AAAA,...}

星运营商正则表达式,使必要的他们认出无限的字符串。

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

希望这会有所帮助!

+0

我以为*表示它代表无限次重复。感谢您的澄清。 – sameday 2013-05-02 21:53:09

+2

@遗产 - *的确的意思是“无限次数的重复”。但是,这意味着由正则表达式识别的语言是无限的,因为它包含无限多的字符串。但是,这些字符串中的每一个仍然是有限的。 – templatetypedef 2013-05-02 21:57:56