正则表达式,用于匹配1-5000之间的数字
本文关键字:之间 数字 1-5000 用于 正则表达式 | 更新日期: 2023-09-27 18:06:45
我想使用一个正则表达式的文本框,只允许1-5000之间的数字
我试过以下方法,但是行不通:
@"/^(?:1|5000|-[1-9]'d?)$/
您可以使用^(?:[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])$