对于以下 DFA NFA
我制作了RE
(a + b)(ab)*
然而,我意识到我的RE不接受空字符串,因为它只接受以a
或b
开头的字符串,而 DFA NFA也接受空字符串,因为初始状态是接受状态。
此 DFA NFA的有效RE是多少?
Ø + (a + b)(ab).*
但我怀疑这种语法是否被接受。
修改
我也刚刚意识到我所做的例子是NFA,但这是问题的重点。
答案 0 :(得分:0)
(a + b)*将是您在问题标题中提到的答案。使用*,表示您可以使用空字符串。 a + b表示您可以选择a或b。所以最后你可以反复选择a或b。
答案 1 :(得分:0)
以下表达式如何?
^(|[ab](ab)*)$
接受空字符串,或者ab
之前没有或多次的序列,前面有a
或b
。
但这取决于确切的正则表达式方言,如果这可以解决你的问题。