正则表达式只包含带有集合{a,b}的b的奇数簇的字符串

时间:2015-04-03 12:47:15

标签: regex

这必须有效

ababbba

这必须无效

bb

我只知道这个正则表达式确保了每次迭代的奇数b

b(bb)*

然而,重复时我的当前正则表达式失败了。

(a*b(bb)*)*

1 个答案:

答案 0 :(得分:2)

表达式(a*b(bb)*)*的问题是a *可以匹配0或更多a,因此它将匹配abbb [0 a] b。我想你想要的是这样的:

^a*b(bb)*(a+b(bb)*)*a*$

将匹配任意数量的a,然后是奇数个b,后跟0个或更多个奇数b,只要中间有一个或多个a,然后是最后的任意数量的a。我包括了开始和结束终结符,因为正则表达式教练在没有它们的情况下给了我部分匹配。