为了账号安全,请及时绑定邮箱和手机立即绑定

只适用于数字

/ 猿问

只适用于数字

汪汪一只猫 2019-06-21 15:08:18

只适用于数字

我根本没有使用正则表达式,所以我很难排除问题。我希望正则表达式只在包含的字符串为所有数字时才匹配;但是在下面的两个示例中,它匹配的是一个包含所有数字的字符串,再加上一个类似于“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。


查看完整描述

3 回答

?
慕神8447489

正则表达式将匹配包含数字的任何内容,您希望使用锚来匹配整个字符串,然后匹配一个或多个数字:

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

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


查看完整回答
反对 回复 2019-06-21
?
慕盖茨4494581

如果你需要容忍小数点和千标记

var regex = new Regex(@"^-?[0-9][0-9,\.]+$");

如果数字可能为负数,则需要一个“-”。


查看完整回答
反对 回复 2019-06-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信