正则表达式,只允许20或更高的正整数

时间:2013-11-25 15:47:26

标签: regex

尝试使用允许20位及以上的正整数高达1000或10000的正则数。应允许0到19,并且不允许使用小数,负数和字母。

我正在尝试这个,但没有得到它。

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

[更新]不希望包含0到19之间的数字。

1 个答案:

答案 0 :(得分: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)$