0

使用Regex时是否可以检查是否在字符串中找不到数字?

所以如果我这样做:

String temp;
String myText = "abcd";
temp = Regex.Match(myText, @"\d+").Value;

如何检查没有找到号码?

我只是这样做:

if (temp = ""){
//code
}
4

6 回答 6

3

更好的方法是

if (Regex.IsMatch(stringToCheck, @"\d+"){
    // string has number
}

如果您想处理找不到数字,请尝试

if (!Regex.IsMatch(stringToCheck, @"\d+"){
    // no numbers found
}

在字符串中查找所有数字的匹配项

MatchCollection matches = Regex.Matchs(stringToCheck, @"\d+");

foreach(Match match in matches){
    //Console.WriteLine(match.Value);
}
于 2013-05-17T15:00:49.380 回答
1

你没有比赛。如果你有一个匹配,你会在某个地方找到一个数字。

于 2013-05-17T14:58:30.103 回答
1

只需使用正则表达式进行反向匹配。

if ( !Regex.Match ( stringToCheck, "^[0-9]+$" ).Success ) {

  }
于 2013-05-17T14:58:49.223 回答
1

你可以使用IsMatch然后否定

if(!Regex.IsMatch(inp,".*\d.*"))//no number found
于 2013-05-17T15:00:03.387 回答
0
Match temp;
String myText = "[0123456789]";
temp = Regex.Match(myText).Value;
bool NoDigits = !temp.Success;

很抱歉我的回答中最初的混乱。此外,您可以继续使用 \d 标志,我只是喜欢 [0123456789] 因为它使它在这种简单的情况下更加突出。

于 2013-05-17T14:58:29.080 回答
0
String myText = "abcd";

if (Regex.IsMatch(myText, "[0-9]+"))
{
    // there was a number
} else {
    // no numbers
}
于 2013-05-17T15:01:23.583 回答