Regex 简化正则表达式、自动机理论

Regex 简化正则表达式、自动机理论,regex,regular-language,automata,Regex,Regular Language,Automata,我最近需要找出这种语言的正则表达式 {w|| w |是奇数,w以字母表{a,b}上的符号b}开始和结束 我想出了一个解决办法 b(ab+bb+aaab+aabb+abab+abbb+bbbb+bbab+babb+baab)* 解决方案很长,所以我希望有人能告诉我一种简化的方法,你可以试试b|(b(a | b)(a | b))*b) 您描述的语言只能生成b,这是第一个分支捕获的,这是它能生成的唯一大小为1的字符串。然后它可以生产尺寸为3,5,7,。。。串。这些被第二个分支捕获。开头和结尾的b是不

我最近需要找出这种语言的正则表达式 {w|| w |是奇数,w以字母表{a,b}上的符号b}开始和结束

我想出了一个解决办法

b(ab+bb+aaab+aabb+abab+abbb+bbbb+bbab+babb+baab)*
解决方案很长,所以我希望有人能告诉我一种简化的方法,

你可以试试
b|(b(a | b)(a | b))*b)
您描述的语言只能生成b,这是第一个分支捕获的,这是它能生成的唯一大小为1的字符串。然后它可以生产尺寸为3,5,7,。。。串。这些被第二个分支捕获。开头和结尾的b是不言自明的。这些占了2个字符。中间一位是经典语言
{w | | w | is odd}
{a,b}
之上

更强大的语法将允许类似于
b((A | b)((A | b)^2)*b)的东西。
,它更紧凑,但等效。

最简单的语法是:

(b(a|b)(aa|ab|ba|bb)*b)|b

你的“解决方案”是错误的。捕获非您语言的
baa
。无论如何,如果你还有更多的正则表达式要找,请随时在评论中引起我的注意。我很乐意帮你。谢谢,那碰巧是个打字错误。为了公平起见,它本来应该是“bb”的,请投票给正确的答案。