2011-02-17 80 views
12

我試圖匹配的字符串,可以是空的或有它的1個或2個數字,如以下:正則表達式的長度的字符串0-2

「」(空) 「1 「 」23「

具有更多數字或非數字字符的字符串不應匹配。我最接近的猜測是正則表達式: 「數字0到9出現0至2次」

[0-9] {0,2}

這我讀說然而,在實踐中,我發現正則表達式也匹配較長的字符串,如「333」。如何限制正則表達式中的字符串長度?

+0

你使用什麼語言? – Donut 2011-02-17 21:36:11

回答

36

使用以下正則表達式:

^[0-9]{0,2}$ 

你幾乎擁有它 - ^$字符分別匹配字符串的開頭和結尾是,。

有關錨更深入的討論,請參見here

[錨]沒有任何字符都匹配。相反,它們匹配字符之前,之後或之間的位置。它們可以用來在正確的位置「錨定」正則表達式匹配。

5

使用元字符開始和結束字符串:

^[0-9]{0,2}$ 

如果你不使用它們,它的任何地方匹配的字符串,而「12」,它相匹配,是「部分123" 。

6

您需要anchor正則表達式:

^[0-9]{0,2}$ 

否則將正則表達式匹配愉快子。

相關問題