我在理解正则表达式时遇到了问题。
我正在尝试这个练习:
在字母{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,但我认为他们错了,我不知道怎么做。
我可以帮忙..
答案 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+符号
。连接