将点星正则表达式转换为NFA

时间:2012-05-23 14:13:14

标签: regex algorithm dfa nfa kleene-star

我正在将一组给定的正则表达式转换为单个NFA,但我遇到了一些问题。我应该如何转换正则表达式,例如“ab。* c”(表示匹配'a','b',任意数量的字符,然后是'c')?

我的最终目标是将单个NFA转换为DFA(我正在使用子集构造算法)。

1 个答案:

答案 0 :(得分:1)

正则表达式中的.*对应于NFA中其字母表中每个字母的循环状态。

该状态也将c转换为接受状态。

在循环转换和接受转换中都有c这是完全可以的 - 这就是为什么它是不确定的。