【问题标题】:Regular Expression for a infinite language无限语言的正则表达式
【发布时间】:2013-04-27 05:31:06
【问题描述】:

我只是对正则表达式有点困惑。是否存在识别无限语言的正则表达式或所有正则表达式都识别有限语言?

【问题讨论】:

    标签: regex computer-science theory regular-language


    【解决方案1】:

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

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

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

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

    希望这会有所帮助!

    【讨论】:

    • 我认为 * 表示它代表无限数量的重复。感谢您的澄清。
    • @Legacy- * 确实意味着“无限次数的重复”。但是,这意味着正则表达式识别的语言是无限的,因为它包含无限多的字符串。但是,这些字符串中的每一个仍然是有限的。
    猜你喜欢
    • 2013-11-18
    • 2020-07-11
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2019-07-15
    • 1970-01-01
    相关资源
    最近更新 更多