正则表达式,0或者正整数。

时间:2021-07-08 07:31:53
正则表达式,0或者正整数。
比如0可以通过,01或者012不可以通过。
第一个写对的分都给他。

11 个解决方案

#1


012不是正整数吗?

#2


引用 1 楼 rock870210 的回复:
012不是正整数吗?

不允许这样的格式。
我试了^[1-9]\d*|0$或者^0|[1-9]\d*$都不行。

#3


			/// <summary>
/// 验证字符串是否是正整数。
/// </summary>
/// <param name="checkedStr">需验证的字符串。</param>
/// <param name="includeZero">是否包括零。</param>
/// <returns></returns>
public static bool IsPositiveInteger(string checkedStr, bool includeZero)
{
if (includeZero)
return Regex.IsMatch(checkedStr, @"^([1-9]\d*|0)$");
else
return Regex.IsMatch(checkedStr, @"^[1-9]\d*$");
}

#4


            string str = "01";
            Regex reg = new Regex(@"^(0|[1-9]+)$");
            Response.Write(reg.Match(str).Success);

#5



//改正下
            string str = "10";
            Regex reg = new Regex(@"^(0|[1-9]\d+)$");
            Response.Write(reg.Match(str).Success);

#6



//悲剧了,最后改
            string str = "01";
            string str1 = "10";
            string str2 = "11";
            Regex reg = new Regex(@"^(0|[1-9]\d*)$");
            Response.Write(reg.Match(str).Success);
            Response.Write(reg.Match(str1).Success);
            Response.Write(reg.Match(str2).Success);

#7


引用 6 楼 huangwenquan123 的回复:
C# code

//悲剧了,最后改
            string str = "01";
            string str1 = "10";
            string str2 = "11";
            Regex reg = new Regex(@"^(0|[1-9]\d*)$");
            Response.Write(reg……

这个是对的。。。来迟了。。又让人抢了先机。。。 正则表达式,0或者正整数。

#8


^[1-9]\d*|0$
价格括号可以前后都匹配。
^([1-9]\d*|0)$

#9



void Main()
{
var list=new List<string>{"0","01","012","12","120"};
Regex reg=new Regex("^([1-9]\\d*|0)$");
foreach(var str in list)
{
 Console.WriteLine(string.Format("{0}\t验证结果:{1}",str,reg.IsMatch(str)));
}
/*
0 验证结果:True
01 验证结果:False
012 验证结果:False
12 验证结果:True
120 验证结果:True

*/
}

#10


结贴了,答对的统统有分。

#11


((^(?!0)\d+)|(^(?=0)\d$))

额,结贴太快了吧
看看我这个没那么复杂

#1


012不是正整数吗?

#2


引用 1 楼 rock870210 的回复:
012不是正整数吗?

不允许这样的格式。
我试了^[1-9]\d*|0$或者^0|[1-9]\d*$都不行。

#3


			/// <summary>
/// 验证字符串是否是正整数。
/// </summary>
/// <param name="checkedStr">需验证的字符串。</param>
/// <param name="includeZero">是否包括零。</param>
/// <returns></returns>
public static bool IsPositiveInteger(string checkedStr, bool includeZero)
{
if (includeZero)
return Regex.IsMatch(checkedStr, @"^([1-9]\d*|0)$");
else
return Regex.IsMatch(checkedStr, @"^[1-9]\d*$");
}

#4


            string str = "01";
            Regex reg = new Regex(@"^(0|[1-9]+)$");
            Response.Write(reg.Match(str).Success);

#5



//改正下
            string str = "10";
            Regex reg = new Regex(@"^(0|[1-9]\d+)$");
            Response.Write(reg.Match(str).Success);

#6



//悲剧了,最后改
            string str = "01";
            string str1 = "10";
            string str2 = "11";
            Regex reg = new Regex(@"^(0|[1-9]\d*)$");
            Response.Write(reg.Match(str).Success);
            Response.Write(reg.Match(str1).Success);
            Response.Write(reg.Match(str2).Success);

#7


引用 6 楼 huangwenquan123 的回复:
C# code

//悲剧了,最后改
            string str = "01";
            string str1 = "10";
            string str2 = "11";
            Regex reg = new Regex(@"^(0|[1-9]\d*)$");
            Response.Write(reg……

这个是对的。。。来迟了。。又让人抢了先机。。。 正则表达式,0或者正整数。

#8


^[1-9]\d*|0$
价格括号可以前后都匹配。
^([1-9]\d*|0)$

#9



void Main()
{
var list=new List<string>{"0","01","012","12","120"};
Regex reg=new Regex("^([1-9]\\d*|0)$");
foreach(var str in list)
{
 Console.WriteLine(string.Format("{0}\t验证结果:{1}",str,reg.IsMatch(str)));
}
/*
0 验证结果:True
01 验证结果:False
012 验证结果:False
12 验证结果:True
120 验证结果:True

*/
}

#10


结贴了,答对的统统有分。

#11


((^(?!0)\d+)|(^(?=0)\d$))

额,结贴太快了吧
看看我这个没那么复杂