这个正则表达式定义的集合是什么?

时间:2015-03-12 22:31:21

标签: regular-language

我正在试图通过正则表达式和语言问题,然而,这个问题似乎让我陷入困境。

有人可以帮忙吗?

我正在尝试写出这个正则表达式定义的集合:

enter image description here

1 个答案:

答案 0 :(得分:1)

要理解这个正则表达式,我们可以分别考虑它的三个部分:

  

(a |Ɛ) abb (a | b)
  \ --- 1 ---- - 2 --- --- 3 ---
  使用括号

在三个组/部分中定义此正则表达式

第1部分:Ɛ是正则表达式中的空符号,如果它与带有union运算符的其他符号(或符号组)一起出现这意味着符号(或组)是选项,例如可以出现或不出现在某些语言字符串中(FA中的Ɛ符号,因为边缘标签定义了“空转换” - 这允许转换到新状态而不消耗任何输入符号。)

在你的正则表达式中,首先'a'用Ɛ - (a |Ɛ)写成,所以它是选项 - 它可以出现在某个字符串中或在其他字符串中不存在。因此,使用此正则表达式生成的字符串以两个“a”或一个“a”开头。

Part-2:使用此正则表达式,子字符串'aab'始终显示在所有可能的字符串中。

所以字符串有两种可能的形式:

  
      
  1. aabb(a | b)
  2.   
  3. ABB(A | B)
  4.   

第3部分:(a | b)字符串以符号“a”或符号“b”结尾。

如果上述两个表格都以'a'结尾

  
      
  • aabba
  •   
  • ABBA
  •   

如果上述两个表格都以'b'结尾

  
      
  • aabbb
  •   
  • ABBB
  •   

当然它是一种有限语言,它的DFA不包含任何循环。它的DFA语言{aabba,abba,aabbb,abbb}如下:

  

enter image description here