构建正则表达式和有限自动机

use*_*215 1 regex automata

我需要一些帮助来理解如何使用以下内容来制作将用于生成epsilon NFA的正则表达式.

字母是{0,1}

语言是:所有字符串的集合,以101开头,以01010结尾.

有效字符串将是:

  • 101010
  • 10101010
  • 101110101
  • 1011101010

我更关心理解如何制作正则表达式.

Osc*_*ros 5

你需要的正则表达式非常简单:

101010|101(0|1)*01010 (theoretical)
Run Code Online (Sandbox Code Playgroud)

要么

^101010|101[01]*01010$ (used in most programming languages)
Run Code Online (Sandbox Code Playgroud)

这意味着:

  • 匹配1,0,1,0,1,0

要么

  • 匹配1,0和1.
  • 保持匹配0或1,零次或多次.
  • 匹配0,1,0,1,0.

以下非确定性自动机应该工作:

在此输入图像描述