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

求正则表达式的用法!
一个txtBox,要求判断输入类似“0.01-21.33”或“10.01-243.33”或不必输入,留空,如何写呢?

网上找的实例,有:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$",也有(@"^[A-Za-z0-9]+$");他们什么区别呢?

------解决方案--------------------
\d就是0-9
\d{1,}.\d{2,}-\d{2,}.{2,}
------解决方案--------------------
^\d{1,}.\d{2,}-\d{2,}.{2,}$|\s*$
------解决方案--------------------
探讨
一个txtBox,要求判断输入类似“0.01-21.33”或“10.01-243.33”或不必输入,留空,如何写呢?

网上找的实例,有:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$",也有(@"^[A-Za-z0-9]+$");他们什么区别呢?

------解决方案--------------------
探讨

引用:
一个txtBox,要求判断输入类似“0.01-21.33”或“10.01-243.33”或不必输入,留空,如何写呢?

网上找的实例,有:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$",也有(@"^[A-Za-z0-9]+$");他们什么区别呢?

^\d*(\.\d*)?(-\d*(\.\d*)?)*$

------解决方案--------------------

LS的几个正则都不是很准确,我补一下

0000.01-21.33这种应该是不符合LZ要求的

如果-号前后都是两位小数,下面这个估计准确一下

C# code

Regex re = new Regex(@"^((?!0\d)\d+(\.\d{2})\-(?!0\d)\d+(\.\d{2}))|\s*$", RegexOptions.None);
if (re.IsMatch("你要验证的字符串"))
{
     //符合要求的
}
else
{
    //不符合要求的
}