正则表达式从负数的数字范围?

Regex for numeric range from negative numbers?

我想使用正则表达式验证数字。条件是数字可以从任何负3位数值到正3位数值。但不能为零。

有人可以帮我获得正则表达式的条件吗?


在那里
它可以以负号开头,也可以不以负号开头,然后是1到9蚂蚁之间的数字,然后可以是任意数字的0到2。

1
^\-?[1-9]\d{0,2}$

更新:以下正则表达式也允许小数

1
^\-?[1-9]\d{0,2}(\.\d*)?$


假设您正在处理整数,并且您的数字未与其他文本混合,则可以尝试

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

我同意Anon的观点,如果您有可预测的输入,则最好读取String并将其转换为int以进行比较。


最适合我的是:

^[+-]?[0-9]*$

我正在检查正则表达式数据类型以及正负数的范围。

此解决方案有效。


我将此与.NET System.Text.RegularExpressions一起使用,以匹配正或负十进制(数字)。

1
(\d+|-\d+)

我认为在上述所有输入中都允许-2-22,2-22,这是一个小错误。

1
[\-]?[0-9]*$/

甚至更小:

1
/^[\-]?\d*$/

我在Django URL中有一些关于正则表达式的实验,要求从负数到正数

1
^(?P<pid>(\-\d+|\d+))$

让我们专注于此(\-\d+|\d+)部分,忽略其他部分,该分号|在正则表达式中表示"或",然后如果我们得到负值,它将与该\-\d+部分匹配,而正值将与该\d+部分匹配