一尘不染

正则表达式仅用于数字

c#

我根本没有使用过正则表达式,因此我很难进行故障排除。我希望正则表达式仅在包含的字符串为全数字时才匹配;但是在下面的两个示例中,它匹配包含所有数字和等号(例如“
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。


阅读 493

收藏
2020-05-19

共1个答案

一尘不染

使用开始和结束锚点。

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

使用"^\d+$",如果你需要匹配一个以上的数字。


请注意,"\d"它将[0-9]与其他数字字符(如东部阿拉伯数字)匹配٠١٢٣٤٥٦٧٨٩。用于"^[0-9]+$"将匹配限制为仅阿拉伯数字0-9。


如果您需要包含除数字以外的任何数字表示形式(例如入门的十进制值),请参阅@tchrist综合指南,该指南以正则表达式解析数字

2020-05-19