Regex a'的奇#正则表达式;s和b的奇数';s

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))*可以匹配偶数次 正则表

我需要用{a,b}语言创建一个正则表达式,它接受所有a和b的奇数的字符串

以下是我最新和最接近的尝试:

(((aa+bb)*(ab+ba))*+((ab+ba)(aa+bb)*)*) 
评分员说它在“”上失败了,我想这意味着它接受lambda,但我不知道怎么做。这并不意味着这是唯一的错误


救命啊

您的尝试有几个问题:

  • 实际上,“”是匹配的(并且不应该匹配):正则表达式的所有部分都是可选的
  • abab
    abba
    。。。etc也会被匹配,因为
    ((aa+bb)*(ab+ba))*
    可以匹配偶数次
  • 正则表达式的后半部分也是如此
下面是一个可以实现此目的的方法:

(aa+bb)*(ab+ba)((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*(aa+bb)*
这里第一个
(ab+ba)
部分不是可选的,因此“”不匹配

有四个国家需要考虑:

  • a的偶数,b的偶数(初始状态)
  • a的偶数,b的奇数
  • a的奇数,b的偶数
  • a的奇数,b的奇数(目标状态)
  • (aa+bb)*
    是状态不变的:匹配前的状态与匹配后的状态相同

    (ab+ba)
    交换状态1和状态4,反之亦然(状态2和状态3,反之亦然,但我们对此不感兴趣)

    ((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*
    是状态不变的,但它允许状态转到任何其他状态并最终返回到原始状态。。。以一切可能的方式。当执行此模式时,起始状态为4,因此它也会在该状态下退出

    如果我们去掉所有的状态不变部分,只剩下
    (ab+ba)
    ,它将初始状态转换为目标状态


    此表达式涵盖了所有允许的原子状态更改。

    您的尝试有几个问题:

    • 实际上,“”是匹配的(并且不应该匹配):正则表达式的所有部分都是可选的
    • abab
      abba
      。。。etc也会被匹配,因为
      ((aa+bb)*(ab+ba))*
      可以匹配偶数次
    • 正则表达式的后半部分也是如此
    下面是一个可以实现此目的的方法:

    (aa+bb)*(ab+ba)((aa+bb)*(ab+ba)(aa+bb)*(ab+ba))*(aa+bb)*
    
    这里第一个
    (ab+ba)
    部分不是可选的,因此“”不匹配

    有四个国家需要考虑:

  • a的偶数,b的偶数(初始状态)
  • a的偶数,b的奇数
  • a的奇数,b的偶数
  • a的奇数,b的奇数(目标状态)
  • (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)来匹配。哦,好吧,我明白了。非常感谢你,你是个救命恩人!哦,好的,我明白了。非常感谢你,你是个救命恩人!