我正在尝试修改此正则表达式,以便您获得大于或等于 1 或小于或等于 10 的数字。此正则表达式允许 >= 0 或 <= 10。
我在表单上有一个文本字段,它的数字等于或大于 0 且小于 11。我可以使用 IF 和逻辑运算符 TryParse,但我有点喜欢正则表达式。
@"^\d$|^[1][0]$"
答案是这不是你应该使用正则表达式的东西。如果有的话,你会使用正则表达式来解析数字,然后将它们与标准if (num >= 0)
等进行比较。
// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
// do something, like:
if (number >= 0 || number <= 10) {
}
}
如果您使用的是 WinForms,则等于和等于 10 的NumericUpDown
控件将完成这项工作。此外,您不需要解析 - 属性将包含您的值(嗯,它将是类型- 只需将其转换为)。MinValue
1
MaxValue
Value
decimal
int
使用的另一个原因NumericUpDown
- 它不允许输入除数字之外的任何内容,并且上下箭头对用户说 - 此控件正在等待您的数字。
虽然我建议简单地使用逻辑运算符来检查 int 是否在 1 到 10 之间,但这里有一个有效的正则表达式:
^(10|[1-9])$
给你:
^(1|2|3|4|5|6|7|8|9|10)$
非常明确,不能误解,清晰如初。为我提供更好的正则表达式。这里不需要简短和神秘
你可以试试这个:
^([1-9]|10)$
使用正则表达式检查从 1 到 10 的数字 -
^([1-9]|10)$