You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用DFA状态图表示正则表达式:我绘制的状态图是否正确?

正则表达式与状态图匹配性验证

a) 正则表达式 0(10)*

该正则匹配以0开头,后续可重复任意次(含0次)10的字符串(例如0、010、01010等)。
对应的状态图需满足以下逻辑:

  • 初始状态输入0进入接受状态;
  • 接受状态输入1跳转至中间状态;
  • 中间状态输入0跳转回接受状态。
    如果你的状态图符合上述逻辑,就是正确的。

b) 正则表达式 a(b+c+d)

该正则仅匹配ab、ac、ad三类字符串。
对应的状态图需满足:

  • 初始状态输入a跳转至中间状态;
  • 中间状态输入b/c/d均可进入接受状态。
    如果你的状态图满足此逻辑,就是正确的。

c) 正则表达式 b*(aa*b*+ε)

先化简正则:b*(aa*b*) + b*ε = aa*b* + b* = a*b*,即匹配任意数量(含0个)的a后接任意数量(含0个)的b的字符串(包括空串、全a、全b、a与b的组合等)。
对应的状态图需覆盖以下情况:

  • 初始状态为接受状态(支持空串匹配);
  • 可处理任意次数的连续或单独a输入;
  • 可处理任意次数的连续或单独b输入;
  • 允许先输入a再输入b的流程。
    如果你的状态图满足所有上述要求,就是正确的。

内容的提问来源于stack exchange,提问作者Marnie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:55:13