我正在研究将正则表达式转换为dfsa的过程。 我遇到了一个正则表达式a | bc * d 并制作一个这样的dfsa。
但是http://hackingoff.com/compilers/regular-expression-to-nfa-dfa
它们之间有什么区别吗?是我的dfsa错了吗?
答案 0 :(得分:0)
当然你的错误是因为匹配b
之后,正则表达式引擎可以匹配d
,因为c*
可以匹配空字符串(c
之间可能会丢失b
和d
)。
*
量词匹配前一个子模式(组,字符类,文字字符)可以匹配的0次或更多次出现。
a|bc*d
0| || |
1 || |
|| |
2| |
3 |
4