正则表达式允许数字在-90.0和+90.0之间

Xai*_*oft 3 c# regex

什么是允许-90.0和+90.0之间的数字的正则表达式?中间的数字可以是浮点数或整数.

Don*_*nut 17

我认为你不想使用正则表达式.如果数据存储在字符串中,请使用Double.Parse()(或Double.TryParse()),然后检查结果值以确保其落在所需范围内.例如:

public bool IsInRange(string value)
{
   bool isInRange = false;

   double parsed = 0;
   if (Double.TryParse(value, out parsed))
   {
      // use >= and <= if you want the range to be from -90.0 to 90.0 inclusive
      isInRange = value > -90.0 && value < 90.0;
   }

   return isInRange;
}
Run Code Online (Sandbox Code Playgroud)

如果你的价值已经是a double,那就更容易了 - 不需要解析.


Mer*_*ham 9

并不是说你真的想在这里使用正则表达式(你应该解析它,而是对数字类型进行比较 - 比如float或double).但是,你可以这样做:

-?(\d|([1-8][0-9])(\.\d)?)|(90(\.0)?)
Run Code Online (Sandbox Code Playgroud)

这将匹配-90.0到90.0,包括在内.如果您希望它是独占的,请删除90.0子句.

  • 否定(可选):
    -?

  • 单个数字
    或双位数,10-89
    \d|([1-8][0-9])
    PLUS十进制,0-9(可选):
    (\.\d)?

  • OR 90
    90
    PLUS十进制,0(可选):
    (\.0)?

如果要支持更多小数点,请将0-89.9子句更改为:

  • 具体精度(在这种情况下为七) \d|([1-8][0-9])(\.\d{1,7})?
  • 无限精度 \d|([1-8][0-9])(\.\d+)?

如有必要,请逃生