数字范围的正则表达式是否为负数?

时间:2011-02-17 02:43:08

标签: regex

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

有人可以帮助我获得正则表达式。

6 个答案:

答案 0 :(得分:11)

有 它可以或不以负号开头,后跟1到9之间的数字,然后可以是0到2之间的任何数字。

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

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

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

答案 1 :(得分:1)

假设您正在处理整数,并且您的号码不与其他文本混合,您可以试试这个

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

我同意Anon,如果你有可预测的输入,那么读取String并将其转换为int以进行比较要好得多。

答案 2 :(得分:0)

我在django url中有一些关于正则表达式的实验,这需要从负数到正数

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

让我们关注这个(\-\d+|\d+)部分并忽略其他部分,这个分号|在正则表达式中表示 OR ,然后如果我们得到负值,它将是与此\-\d+部分匹配,以及此\d+部分

的正值

答案 3 :(得分:0)

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

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

更小:

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

答案 4 :(得分:0)

I used this with the .NET System.Text.RegularExpressions to match positive or negative decimals (numbers).

(\d+|-\d+)

答案 5 :(得分:0)

最适合我的是:

  

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

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

此解决方案有效。