【问题标题】:Confusion about the Kleene star对克莱恩星的困惑
【发布时间】:2017-09-07 07:29:19
【问题描述】:

我一直在努力理解关于两个联合表达式的闭包的一个关键属性。基本上我需要知道 Kleene 星是如何工作的。

IE 如果正则表达式 R = (0+1)* 表达式是否必须计算为 000111/01/00001111 之类的值,或者我们可以有不相等数量的 0 和 1,例如作为 0011111/000001/111111/0000?

【问题讨论】:

    标签: regex automata dfa


    【解决方案1】:

    0 和 1 的数量可以不相等;您甚至可以按任意顺序排列 0 和 1! a* 表示“零个或多个as,其中每个a 都是独立评估的”;因此,在匹配(0+1)* 的字符串中,每个字符都可以匹配(0+1),而无需考虑字符串中的其他字符如何匹配它。

    考虑模式(0+1)(0+1);它匹配字符串00011011。如您所见,0 和 1 不必以相同的数量出现,也不必以任何特定的顺序出现。 Kleene 星将其扩展到任何长度的弦;毕竟,(0+1)* 只是意味着<empty>+(0+1)+(0+1)(0+1)+(0+1)(0+1)(0+1)+ ...

    【讨论】:

    • 哇!这就是对主题的明确阐述。非常感谢,奇怪这么简单的话题怎么能把我搞成这样。
    • 如果此答案解决了您的问题,请考虑对其进行投票和/或将其标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多