这个正则表达式接受链的条件是什么?
末尾的*可以理解为初始状态是接受的,并且每当自动机接受任何东西时都会返回到此状态。调用初始状态 q1。
要接受 1(01*0(1,我们必须首先消耗 1 并进入新状态,例如 q2。从那里,我们可以在子表达式 01*0 上进行自我循环,方法是在 0 上转到新状态 q3,然后在 q3 中循环 1,然后在 0 上返回到 q2。
从 Q2 开始,我们可以在 1 上返回到 q0。我们的DFA看起来像:
/--1-- /--0--
| | |
V | V |
--->(q1)-1->(q2)-0->(q3)-
| ^
0 | /
| -1-/
V
(q4)-
^
| /
,1/
这样的事情应该这样做。
当你不知道如何开始时,你应该写下正则表达式生成的几个第一个元素。在这种情况下:
SET = {eps, 11, 1001, 10101, ...}
然后尝试编造一些东西。不过你得到了答案,所以我不会重复这个。
也许你会得到一些想法
[[0-9s]+.*]*
演示:https://rubular.com/r/n3bVXJd3SFffr0