正则表达式。常规还是不规则?

时间:2011-10-24 11:01:11

标签: regex regular-language

我只想对这些表达进行第二次选择,以及它们是不规则还是常规。

{0^n 1^m | n >= m >=0}常规

{0^n 1^m | n,m >=0}*常规

{0^n 0^n | n>=0}不正确

任何人都可以确认这是真的吗?

1 个答案:

答案 0 :(得分:4)

{0^n 1^m | n >= m >=0}由于FSM无法跟踪n是什么以确保n> = m,因此FSM无法表示表达式。

{0^n 1^m | n,m >=0}* - FSM似乎代表了这一点,但存在问题。与第一个问题不同,n和m彼此无关,因此没有FSM创建问题。问题是n和m必须保持相同才能通过机器多次通过。同样,由于没有记忆,这是不可能的。

{0^n 0^n | n>=0} - 这对于FSM来说也很简单。它看起来很像第二个问题的FSM。 RE是(00)*