如何定义正则表达式以使用以下语言?
L = {w∈{a,b} * | w有偶数个b }
我尝试创建相关的自动机:
从那时起我尝试应用算法从DFA获得常规表达式,我得到了这个公式:a*ba*b
。
这可能是正确答案吗?
答案 0 :(得分:2)
你已经很近了,但你的模式结尾需要a*
。你还需要锚点^
和$
来指定你的字符串的开头和结尾。然后你可以将所有正则表达式放在捕获组中,并使用*
匹配任何偶数({1}},b
匹配a*
的零数:
b
注意: ^((a*ba*ba*)*|a*)$
是一个逻辑OR,使您的正则表达式引擎匹配|
或(a*ba*ba*)*
。
你也可以让它更优雅但是你对正则表达不太熟悉,我首先提出了前面的模式。
例如,以下内容将起作用:
a*
答案 1 :(得分:0)