正则表达式为大于0且小于11的整数

时间:2012-11-22 08:13:17

标签: c# regex

我正在尝试修改此正则表达式,以便您获得更大或等于1或小于或等于10的数字。此正则表达式允许> = 0或< = 10。

我在表单上有一个文本字段,它取数字等于或大于0且小于11.我可以使用IF和逻辑运算符,TryParse,但我有点像正则表达式。

@"^\d$|^[1][0]$"

7 个答案:

答案 0 :(得分:9)

你需要稍微修改你的正则表达式

@"^[1-9]$|^10$"

您不需要围绕单个字符的方括号,我会在交替周围使用一组并将其更改为

@"^([1-9]|10)$"

here on Regexr

答案 1 :(得分:5)

答案是这不是你应该使用正则表达式的东西。如果有的话,您可以使用正则表达式来解析数字,然后将它们与标准if (num >= 0)等进行比较。

// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
    // do something, like:
    if (number >= 0 || number <= 10) {

    }
}

答案 2 :(得分:4)

如果您使用的是WinForms,那么NumericUpDown控制MinValue等于1MaxValue等于10将完成此任务。此外,您不需要解析 - 属性Value将包含您的值(嗯,它将是decimal类型 - 只需将其转换为int)。

使用NumericUpDown的另一个原因 - 它不允许输入除数字之外的任何内容,并且向上箭头对用户说 - 此控件正在等待您的数字。

答案 3 :(得分:3)

虽然我建议只使用逻辑运算符来检查int是否介于1和10之间,但这是一个有效的正则表达式:

^(10|[1-9])$

答案 4 :(得分:1)

你在这里:

^(1|2|3|4|5|6|7|8|9|10)$

非常明确,不能曲解,清楚如天。为我做一个更好的正则表达式。这里没有必要简短而神秘

答案 5 :(得分:1)

你可以试试这个:

^([1-9]|10)$

答案 6 :(得分:0)

使用正则表达式检查1到10之间的数字 -

<强> ^([1-9] | 10)$