我正在将一组给定的正则表达式转换为单个 NFA,但我遇到了一些问题。我应该如何转换正则表达式,例如“ab.*c”(表示匹配一个“a”、一个“b”、任意数量的字符,然后是一个“c”)?
我的最终目标是将单个 NFA 转换为 DFA(为此我正在使用子集构造算法)。
最佳答案
正则表达式中的 .*
对应于 NFA 中其字母表中每个字母的循环状态。
对于 c
,该状态也将转换为接受状态。
在循环转换和接受转换中都有 c
是完全可以的——这就是它不确定的原因。
关于regex - 将点星正则表达式转换为 NFA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10721776/