c++实现的正则表达式识别器。包含正则转换NFA和NFA转换DFA过程的展示。
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PeterAlbus 16f9c3e0ef 修复了运算符优先级的bug 3 years ago
.gitignore basic functions 3 years ago
LICENSE Initial commit 3 years ago
README.md 修复了运算符优先级的bug 3 years ago
lA2.exe 修复了运算符优先级的bug 3 years ago
main.cpp 修复了运算符优先级的bug 3 years ago

README.md

regex recognition

c++实现的正则表达式识别器。包含正则转换NFA和NFA转换DFA过程的展示。 需要编译环境c++ 11 打开LA2.exe可直接使用本程序。

注意事项

  • 时间原因,正则表达式不支持转移符号,也不支持 . 来表示全体字符。因此该程序不支持对 | ( ) +等字符的识别。
  • 使用时若需表示空串,使用`替代,因此本程序不支持对该字符的识别

程序运行示例

  • 正规式r(a|b)*bb((>|<)(=|\epsilon)|(!|=)=)1

  • 运行编写的程序输入正规式生成NFA初态为第一行

    image-20220408075822086

  • 程序将生成的NFA转换为DFA

    image-20220408075900260

  • 对DFA进行化简并输出终态集合和支持输入的字符

    image-20220408080001436

  • 读取txt文件内的内容作为输入进行识别测试

    image-20220408080106552

  • 识别结果符合预期,自动机生成成功。

    image-20220408080147909