我根本没用过正则表达式,所以在故障排除方面遇到了困难。我想正则表达式匹配仅当包含的字符串是所有数字;但是在下面两个例子中,它匹配的是一个包含所有数字加上等号的字符串,比如“1234=4321”。我确信有一种方法可以改变这种行为,但正如我所说的,我从来没有真正使用过正则表达式。

string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");

if (regex.IsMatch(compare))
{ 
    //true
}

regex = new Regex("[0-9]");

if (regex.IsMatch(compare))
{ 
    //true
}

以防万一,我使用的是c#和。net 2.0。


当前回答

^\d+$,在英语中是“字符串的开始”,“1个或多个数字”,“字符串的结束”。

其他回答

^\d+$,在英语中是“字符串的开始”,“1个或多个数字”,“字符串的结束”。

你的正则表达式将匹配任何包含数字的东西,你想使用锚来匹配整个字符串,然后匹配一个或多个数字:

regex = new Regex("^[0-9]+$");

^将锚定字符串的开头,$将锚定字符串的结尾,+将匹配它前面的一个或多个字符(在本例中为数字)。

整数和浮点数的正则表达式:

^[+-]?\d*\.\d+$|^[+-]?\d+(\.\d*)?$

数字可以以句号(不带前导数字)开头, 数字可以以句号结尾(后面没有数字)。 以上正则表达式将两者都识别为正确的数字。

一个。(句号)本身没有任何数字不是正确的数字。 这就是为什么我们需要两个正则表达式部分(用“|”分隔)。

希望这能有所帮助。

Regex Regex =新的正则表达式(" ^[0 - 9]{1 4}=[0 - 9]{1,4]美元”)

我认为这个是最简单的,它接受欧洲和美国的数字书写方式,例如美国10,555.12欧洲10.555,12 此外,这个语句不允许几个逗号或点一个接一个,例如10..22或10。22 除了。55这样的数字,55可以通过。这可能很方便。

^([,|.]?[0-9])+$