2013-11-25 113 views
0

嘗試允許從20以上到1000或10000的正整數的正則表達式。應該允許使用0到19,也不允許使用小數,負數和字母允許。正則表達式,只允許20以上的正整數

我正在嘗試,但沒有得到它。

r"[+-]?(?<!\.)\b[0-9]+\b(?!\.[0-9])" 

[更新]不想包括從0到19

+1

爲什麼這個正則表達式? – anubhava

+5

「允許20 - 1000的數字」。 「也允許0-19」。咦? – h2ooooooo

+0

@ h2ooooooo我猜OP的意思是寫「0至19應該*不允許」,因爲他然後繼續列出3個「也」不應該被允許的事情。 –

回答

1

嘗試是這樣的:

[2-9][0-9]|[1-9][0-9]{2,} 

這將匹配大於等於一個雙位數字到20,或三位或更多位的數字。這依賴於你如何使用它,你可能需要將啓動(^)和結束($)錨周圍的模式在輸入禁止任何額外的字符:

^([2-9][0-9]|[1-9][0-9]{2,})$ 

如果你想限制這種爲數字高達1000:

^([2-9][0-9]|[1-9][0-9]{2}|1000)$ 

如果你想這個限制人數達到10000:

^([2-9][0-9]|[1-9][0-9]{2,3}|10000)$ 
+0

Perfect @ p.s.w.g非常感謝。 – Matthew

+0

這將匹配大於1000的數字雖然 –

+0

@RyanSaxe我認爲OP只是意味着它應該匹配任意大的數字,但這是一個很好的觀點。我也包括這些情況的替代方案。 –

相關問題