Regex a'的奇#正则表达式;s和b的奇数';s
我需要用{a,b}语言创建一个正则表达式,它接受所有a和b的奇数的字符串 以下是我最新和最接近的尝试:Regex a'的奇#正则表达式;s和b的奇数';s,regex,Regex,我需要用{a,b}语言创建一个正则表达式,它接受所有a和b的奇数的字符串 以下是我最新和最接近的尝试: (((aa+bb)*(ab+ba))*+((ab+ba)(aa+bb)*)*) 评分员说它在“”上失败了,我想这意味着它接受lambda,但我不知道怎么做。这并不意味着这是唯一的错误 救命啊 您的尝试有几个问题: 实际上,“”是匹配的(并且不应该匹配):正则表达式的所有部分都是可选的 abab,abba。。。etc也会被匹配,因为((aa+bb)*(ab+ba))*可以匹配偶数次 正则表
(((aa+bb)*(ab+ba))*+((ab+ba)(aa+bb)*)*)
评分员说它在“”上失败了,我想这意味着它接受lambda,但我不知道怎么做。这并不意味着这是唯一的错误
救命啊 您的尝试有几个问题:
- 实际上,“”是匹配的(并且不应该匹配):正则表达式的所有部分都是可选的
,abab
。。。etc也会被匹配,因为abba
可以匹配偶数次李>((aa+bb)*(ab+ba))*
- 正则表达式的后半部分也是如此
(aa+bb)*(ab+ba)((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*(aa+bb)*
这里第一个(ab+ba)
部分不是可选的,因此“”不匹配
有四个国家需要考虑:
(aa+bb)*
是状态不变的:匹配前的状态与匹配后的状态相同
(ab+ba)
交换状态1和状态4,反之亦然(状态2和状态3,反之亦然,但我们对此不感兴趣)
((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*
是状态不变的,但它允许状态转到任何其他状态并最终返回到原始状态。。。以一切可能的方式。当执行此模式时,起始状态为4,因此它也会在该状态下退出
如果我们去掉所有的状态不变部分,只剩下(ab+ba)
,它将初始状态转换为目标状态
此表达式涵盖了所有允许的原子状态更改。您的尝试有几个问题:
- 实际上,“”是匹配的(并且不应该匹配):正则表达式的所有部分都是可选的
,abab
。。。etc也会被匹配,因为abba
可以匹配偶数次李>((aa+bb)*(ab+ba))*
- 正则表达式的后半部分也是如此
(aa+bb)*(ab+ba)((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*(aa+bb)*
这里第一个(ab+ba)
部分不是可选的,因此“”不匹配
有四个国家需要考虑:
(aa+bb)*
是状态不变的:匹配前的状态与匹配后的状态相同
(ab+ba)
交换状态1和状态4,反之亦然(状态2和状态3,反之亦然,但我们对此不感兴趣)
((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*
是状态不变的,但它允许状态转到任何其他状态并最终返回到原始状态。。。以一切可能的方式。当执行此模式时,起始状态为4,因此它也会在该状态下退出
如果我们去掉所有的状态不变部分,只剩下(ab+ba)
,它将初始状态转换为目标状态
此表达式涵盖了所有允许的原子状态更改。什么是语言{a,b}?为什么它不接受空字符串?正则表达式中的所有内容都是可选的。@melpomene,问题是它不应该与空字符串匹配;)@trincot“它接受lambda,但我不知道如何接受”是的,这是一个问题,但它仍然不应该仅仅通过挑战的定义(奇数a,奇数b)来匹配语言{a,b}?为什么它不接受空字符串?正则表达式中的所有内容都是可选的。@melpomene,问题是它不应该与空字符串匹配;)@trincot“它接受lambda,但我不知道如何接受”是的,这是个问题,但它仍然不应该仅仅通过挑战的定义(奇数a,奇数b)来匹配。哦,好吧,我明白了。非常感谢你,你是个救命恩人!哦,好的,我明白了。非常感谢你,你是个救命恩人!