2015-04-03 28 views
1

這必須是有效的正則表達式包含B的與集只有奇簇串{A,B}

ababbba 

這必須是無效

bb 

我只知道,這個正則表達式確保奇b的每次迭代

b(bb)* 

但是,我的當前正則表達式在重複時失敗。

(a*b(bb)*)* 
+0

爲什麼'bb'有效,如果你只需要奇數個'b's? – Turion 2015-04-03 12:57:16

+1

@Turion我寫道'bb'必須是無效的。 – Ahtsham 2015-04-03 13:12:22

回答

2

用表達(a*b(bb)*)*的問題是,在一個*能匹配0或更大的,因此它會匹配ABBB [0]灣我想你想要的是這樣的:

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

,將匹配任意數量的,其次則是奇數B的0以上的奇數號B的,只要有一個或多個在之間,然後在任何數量的結尾。我包括開始和結束終止符,因爲正則表達式教練給我沒有他們的部分匹配。

相關問題