自动 - 正则表达式

时间:2014-10-10 16:18:24

标签: automata computation-theory

我在理解正则表达式时遇到了问题。

我正在尝试这个练习:

在字母{a,b}上,创建一个正则表达式:

A)接受包含至少一个事件'a'或'b'的所有字词。

epsilon *(a U b)

B)接受所有最多三个'a''

的单词

C)所有以双字母结尾的单词(例如abb ou abaa)

epsilon *(aa U bb)

D)这些单词恰好出现三次aaa(例如abaaab或baaab)

所以,正如你可以看到我对正则表达式有很多问题,我做了A和C,但我认为他们错了,我不知道怎么做。

我可以帮忙..

1 个答案:

答案 0 :(得分:1)

A)Σ*。(a + b)
B)b * + b * .a.b * + b * .a.b * .a.b * + b * .a.b * .a.b * .a.b *
C)Σ*。(aa + bb)
D)(a.b + a.a.b + b *)* .aaa。(b.a + b.a.a + b *)*

你有A)和C)正确的想法。此外,它是字母表的西格玛,而不是epsilon。并且您不在正则表达式中使用 U 。它用 + 符号表示。只允许的操作是:
∅ - 空集
ε - 空字
a,b - 字母表中的终端
+用于统一
*代表0+符号
。连接