目前,在我的程序中,我通过使用以下Regex
方法和if
语句检查我的字符串以查看它们是否不是整数值:
if(Regex.IsMatch(myString, @"^\d+$") == false) {}
但是,我需要允许以下值:" 45 23 12"。这些值涉及空格,我认为这些空格被Regex
计为字符,因为每当我尝试像前一个例子时,我的代码都会返回false。
如何在允许使用空格的情况下检查不是整数的值?
This question使用Regex.Matches(myString,@"[a-zA-Z]").Count
来检查来自' a-z'的所有字符出现的字符串,这并不涉及" &#34 ;.但是,当我在我的if
语句中使用它时,我注意到它的类型为Int,不能与false
与==
进行比较。
答案 0 :(得分:2)
if(! Regex.IsMatch(myString, @"^\s*\d(\d|\s)*$")) { ... }
答案 1 :(得分:1)
我会使用正则表达式
^\d+(\s\d+)*$
说明:
^ beginning of line.
\d+ one or more digits.
(\s\d+)* zero, one or more repetitions of space + one or more digits.
$ end of line.
if (!Regex.IsMatch(myString, @"^\d+(\s\d+)*$")) {
...
}
请写下
!<boolean expression>
代替<boolean expression> = false
。
和
<Boolean expression>
代替<Boolean expression> = true
。
您不能写1 * x
,而只需x
。
很多人认为if语句需要进行比较。他们不。他们需要的是布尔表达式,即表达式为true
或false
的表达式。 Regex.IsMatch(...)
会返回bool
值,这就是我们所需要的。
答案 2 :(得分:0)