2014-04-09 102 views
1

我有一個字符串,如1566-02,其中-02是可選的。如果我使用正則表達式這樣可選的正則表達式匹配

1566\s*-\s*\d{2} 

它總是會想到1566後2連字符的數字編號。

我如何才能使-02部分爲可選項,以便IsMatch對於1566也應該爲true?

例如 - 如果我們把這個字符串爲1566或1566年至1502年或1566年至1545年 IsMatch值應爲1566-AC或1566-

+0

請指定您正在使用的語言/平臺。鑑於你提到'IsMatch'是這個.NET? –

回答

3

是假的只需將它包裝IsMatch的值應該是真實的在一個group並使其可選的零或酮quantifier?):

1566(\s*-\s*\d{2})? 

要匹配的字符串之前或之後,禁止任何其它的字符,使用開始(^)和結束($anchors

^1566(\s*-\s*\d{2})?$ 
+0

IsMatch值應該爲 - 對於1566,1566-23爲真,但對於1566-AB應爲false。在這種情況下,一切都成真 – user3260341

+0

非常感謝你p.s.w.g - 它符合我的要求 – user3260341