C# 大于0小于11的整数的正则表达式
我正试图修改这个正则表达式,以便得到大于或等于1或小于或等于10的数字。这个正则表达式允许>=0或答案是这不是你应该使用正则表达式的东西。如果有什么问题,您可以使用正则表达式解析出这些数字,然后将它们与标准的C# 大于0小于11的整数的正则表达式,c#,regex,C#,Regex,我正试图修改这个正则表达式,以便得到大于或等于1或小于或等于10的数字。这个正则表达式允许>=0或答案是这不是你应该使用正则表达式的东西。如果有什么问题,您可以使用正则表达式解析出这些数字,然后将它们与标准的If(num>=0)等进行比较 // EDIT: replaced regex with this: int number; if (Int32.TryParse(myString, out number)) { // do something, like: if (numb
If(num>=0)
等进行比较
// EDIT: replaced regex with this:
int number;
if (Int32.TryParse(myString, out number)) {
// do something, like:
if (number >= 0 || number <= 10) {
}
}
//编辑:将正则表达式替换为:
整数;
if(Int32.TryParse(myString,out number)){
//做点什么,比如:
如果(number>=0 | | number,则只需稍微修改正则表达式
@"^[1-9]$|^10$"
您不需要在单个字符周围使用方括号,我会在替换字符周围使用一个组,并将其更改为
@"^([1-9]|10)$"
请看给您:
^(1|2|3|4|5|6|7|8|9|10)$
非常明确,不能曲解,像day一样清晰。这对我来说是一个更好的正则表达式。这里不需要简短和神秘的(虽然我建议只使用逻辑运算符检查int是否介于1和10之间,但这里有一个工作正则表达式:
^(10|[1-9])$
您可以尝试以下方法:
^([1-9]|10)$
如果您使用的是WinForms,那么NumericUpDown
控件的MinValue
等于1
和MaxValue
等于10就可以了。另外,您不需要解析-属性值
将包含您的值(它的类型是decimal
-只需将其转换为int
)
使用NumericUpDown
的另一个原因-它不允许输入除数字以外的任何内容,上下箭头向用户表示-此控件正在等待您的数字。使用正则表达式检查1到10之间的数字-
^([1-9]| 10)$为什么要使用正则表达式?为什么要使用正则表达式表示整数?假设字符串中有一个数字(这就是正则表达式的用途),您可以将字符串转换为一个整数。您真的打算使用正则表达式吗?请不要这样做。您的朋友可能会嘲笑您。尽管如此,操作非常简单,速度也非常快:int-result;if(!int.TryParse(myStr,out-result)| result<1 | | result>10){/*error*/}
我不想太冲动,但如果你正在学习,请接受大家的建议!完全有道理,但我的目标是学习其他做事方法,正如你所建议的,我本可以使用TryParse和一些运算符,但我想看看如何分配布尔值和使用Regix。-谢谢!@unserageguy我明白了。是的,我知道什么你的意思是,学习新的做事方式总是很有趣的!这个正则表达式甚至不正确。它匹配0
和Int32之间的数字。MaxValue
@Abbondanza这就是重点!重点是把数字拿出来,然后进行比较。@mmmshuddup这比一开始使用正则表达式更有意义。这是真的,但是我会错过所有的建议吗?有时候最简单的方法教你的东西很少。谢谢大家,所有的答案都很有价值!
^([1-9]|10)$