有限自动机和正则表达式

时间:2014-01-15 11:06:36

标签: regex regular-language dfa nfa

我一直在为字母{a,b}上的给定语言编写正则表达式。如果字符串以子字符串'aa'开头或以子字符串'bb'结尾,则接受字符串。

例如,{aab, abb, aaba}被接受但{Λ, ab, abaa}不被接受。

我尝试的解决方案是:{aa* + ab* + bb*},但我在想:如果字符串以b开头怎么办?然后,我的表达不起作用..

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

这很简单:

  

字母{a,b},字符串上的语言正则表达式以子字符串'aa'开头,或以子字符串'bb'结尾。

正则表达式:

  

aa(a + b)* + (a + b)*bb

注意+是此处的联合。

答案 1 :(得分:0)

我认为这可能会奏效。

^aa[a,b]*|[a,b]*bb$