将正则表达式转换为dfsa

时间:2016-05-02 08:10:28

标签: regex

enter image description here

我正在研究将正则表达式转换为dfsa的过程。 我遇到了一个正则表达式a | bc * d 并制作一个这样的dfsa。

但是http://hackingoff.com/compilers/regular-expression-to-nfa-dfa

这里它转换正则表达式如下。 enter image description here

它们之间有什么区别吗?是我的dfsa错了吗?

1 个答案:

答案 0 :(得分:0)

当然你的错误是因为匹配b之后,正则表达式引擎可以匹配d,因为c*可以匹配空字符串(c之间可能会丢失bd)。

*量词匹配前一个子模式(组,字符类,文字字符)可以匹配的0次或更多次出现。

 a|bc*d
0| || |
 1 || |
   || |
   2| |
    3 |
      4