正则表达式,用于匹配1-5000之间的数字

本文关键字:之间 数字 1-5000 用于 正则表达式 | 更新日期: 2023-09-27 18:06:45

我想使用一个正则表达式的文本框,只允许1-5000之间的数字

我试过以下方法,但是行不通:

@"/^(?:1|5000|-[1-9]'d?)$/

正则表达式,用于匹配1-5000之间的数字

您可以使用^(?:[1-9]|'d{2,3}|[1-4]'d{3}|5000)$。但是你最好先解析成Int,然后再做简单的数学运算。

通过事先进行一些解析,您可以使正则表达式变得非常简单:

string s = textBox1.Text;
string r = "";
int n = 0;
if (int.TryParse(s, out n) && (n>=1 && n<=5000))
{
    r = "y";
}
if (Regex.IsMatch(r, "y")) {
    // input was valid
    MessageBox.Show("OK");
}

Try…

^(?:[1 - 4][0 - 9]{1,3} |[1 - 9][0 - 9]{0, 2} | 5000)美元

您可以这样做:

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

前两组将匹配1 - 4999范围内的任何内容。在末尾添加|5000,使其匹配范围为1 - 5000。这里的三种情况是:

  • 数字是5000
  • 1 ~ 3位数字。在这种情况下,它不可能超过5000。然而,第一个数字必须是1 - 9,这样你就不能得到像"009"或"000"这样的数字。"
  • 号码为4位,必须在1000 ~ 4999之间

话虽如此,我认为解析int并查看它是否在范围内可能会更简单。

您可以尝试这样做(0-366)

 ^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])$