我想将正则表达式用于只允许1-5000之间的数字的文本框
我尝试了以下但是它无法工作:
@"/^(?:1|5000|-[1-9]\d?)$/
答案 0 :(得分:7)
您可以使用^(?:[1-9]|\d{2,3}|[1-4]\d{3}|5000)$
。但是你最好解析为Int然后做简单的数学。
答案 1 :(得分:5)
事先进行一些解析,你可以使正则表达式变得非常简单:
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");
}
答案 2 :(得分:2)
尝试......
^(:[1-4] [0-9] {1,3} | [1-9] [0-9] {0,2} | 5000)$
答案 3 :(得分:2)
您可以执行以下操作:
task body Whatchdog is
dur : constant Duration := Duration(Float(dur_in_msec) / 1_000.0);
前两组将匹配1 - 4999范围内的任何内容。最后添加| 5000使其匹配范围1 - 5000.这里的三种情况是:
话虽如此,我认为解析int并查看它是否在范围内可能更简单。
答案 4 :(得分:0)
您可以尝试这样的事情(0-366)
^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])$