正则表达式仅用于数字
我根本没有使用正则表达式,所以我遇到了疑难解答。 我只想在包含的字符串是数字时才匹配正则表达式; 但通过下面的两个例子,它匹配一个包含所有数字的字符串加上一个等号“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#和.NET2.0。
使用开始和结束锚点。
Regex regex = new Regex(@"^d$");
如果您需要匹配多个数字,请使用"^d+$"
。
请注意, "d"
将匹配[0-9]
和其他数字字符,如东部阿拉伯数字٠١٢٣٤٥٦٧٨٩
。 使用"^[0-9]+$"
将匹配限制为阿拉伯数字0 - 9。
如果您需要包含除数字以外的任何数字表示(如初学者的十进制值),请参阅@ tchrist的全面指南,以便用正则表达式解析数字。
您的正则表达式将匹配包含数字的任何内容,您希望使用锚匹配整个字符串,然后匹配一个或多个数字:
regex = new Regex("^[0-9]+$");
^
将锚定字符串的开头, $
将锚定字符串的结尾,并且+
将匹配一个或多个它之前的内容(在这种情况下为数字)。
如果你需要忍受小数点和千分号...
var regex = new Regex(@"^-*[0-9,.]+$");
更新:如果号码可以变为负值,您将需要“ - ”。 更新:将“ - ”移到开头以避免匹配不起始的“ - ”
链接地址: http://www.djcxy.com/p/76709.html下一篇: Regex that matches a string that ends with the same sequence as it begins