日期:2014-05-18  浏览次数:20604 次

求匹配正整数,正浮点数正则表达式
如題:

------解决方案--------------------
^[1-9][0-9]*$    //匹配正整数
^(?:[1-9][0-9]*\.[0-9]+|0\.(?!0+$)[0-9]+)$   //匹配正浮点数

------解决方案--------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※以下是引用9楼 lxcnn(过客) 在2007-06-27 09:08:43 的发言:
──────────────────────────────────────────
-_-#,能不能一次把要求说完,0.0也在正整数和正浮点数范围内吗,我孤陋寡闻
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
等价于
^[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+$

还有
^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.[0-9]+)$
匹配不了0

稍做修改
^(?:[1-9]\d*|0)(?:\.\d+)?$
------解决方案--------------------
#region 验证输入的值是不是数字的正则表达式
/// <summary>
/// 验证输入的值是不是数字的正则表达式
/// </summary>
/// <param name= "str "> 传入一个字符串 </param>
/// <returns> trur或是false </returns>
public static bool ValidateNumeric(string str)
{
if (!Regex.IsMatch(str, @ "^(-{0,1}|\+{0,1})[0-9]+(\.{0,1}[0-9]+)$ "))
{
throw new Exception( "输入的值不是数字,请重输 ");
}
else
{
return true;
}
}
完整写法,包括负数都可以,自己修改一下吧。