仅针对数字的正则表达式

37 浏览
0 Comments

仅针对数字的正则表达式

我完全没有使用过正则表达式,所以在进行故障排除时遇到了困难。我想让正则表达式仅在包含数字的字符串全部是数字时匹配;但是在下面的两个例子中,它会匹配一个包含所有数字加上等号的字符串,例如“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。

admin 更改状态以发布 2023年5月21日
0
0 Comments

你的正则表达式会匹配任何包含数字的字符串,你需要使用锚点来匹配整个字符串,然后匹配一个或多个数字:

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

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

0
0 Comments

使用起始和结束锚点。\n

Regex regex = new Regex(@"^\d$");

\n如果需要匹配多个数字,请使用\"^\\d+$\"。\n


\n请注意,\"\\d\"会匹配[0-9]和类似于阿拉伯数字٠١٢٣٤٥٦٧٨٩的其他数字字符。使用\"^[0-9]+$\"仅限制匹配阿拉伯数字0-9。\n


\n如果需要包含除数字以外的任何数字表示(例如,启动器的十进制值),请参见@ tchrist使用正则表达式解析数字的全面指南

0