求可以为负数的正则表达式

zhengyingcan 2012-08-07 02:04:54
我以前是用 @"^[0-9.]+$" 非数字的都可以判断出来,但是问题是负数(-1,-1.11)就验证通不过, 我现在想负整数,负小数也能通过验证,这个正则表达式如何修改呢
...全文
1688 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码誊写工 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
MessageBox.Show("这里不允许输入非数字型,我要转化为零");
[/Quote]
用户提示很亲切嘛,嘿嘿!
zhengyingcan 2012-08-08
  • 打赏
  • 举报
回复
可以了,是我自己的问题
zhengyingcan 2012-08-08
  • 打赏
  • 举报
回复
我的代码是 if (!Regex.IsMatch(dataGridView1.Rows[ri].Cells[e.ColumnIndex].Value.ToString(), @"(-)?\d+(\.\d\d)?"))//正则表达式验证
{
MessageBox.Show("这里不允许输入非数字型,我要转化为零");
dataGridView1.Rows[ri].Cells[e.ColumnIndex].Value = "0";
}
幽狼 2012-08-07
  • 打赏
  • 举报
回复
^[+-]?(?:[1-9]\d*|(?<Z>0))(?:\.(?(Z)\d*[1-9]\d*|\d+))?$

匹配全体实数.
-过客- 2012-08-07
  • 打赏
  • 举报
回复
^[+-]?(?:[1-9][0-9]*|0)(?:\.[0-9]+)$


如果还是说负数验证不过,贴你的代码
代码誊写工 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
试试这个
[/Quote]
这个就只能负的
别写了,让楼主贴了代码再说吧
lee3217813 2012-08-07
  • 打赏
  • 举报
回复
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
试试这个
代码誊写工 2012-08-07
  • 打赏
  • 举报
回复
估计你放在什么控件的Keypress事件里,前面先把“-”过滤了,是不是?如果要解决问题就贴代码吧
zhengyingcan 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

string pattern = @"^\-?[0-9]+(\.[0-9]+)?$";
[/Quote]
试过了.输入负数不行,
zhengyingcan 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

@"^[-]?[0-9.]+$"

在你的正则上加上[-]?就可以了
[/Quote]
试过了,输入负数不行
shizhu820228 2012-08-07
  • 打赏
  • 举报
回复
@"^[-]?[0-9.]+$"

在你的正则上加上[-]?就可以了
kingdom_0 2012-08-07
  • 打赏
  • 举报
回复
^[+-]?([1-9][0-9]*|0)(\.[0-9]+)?%?$
正数,负数,百分数都可以
  • 打赏
  • 举报
回复
string pattern = @"^\-?[0-9]+(\.[0-9]+)?$";
zhengyingcan 2012-08-07
  • 打赏
  • 举报
回复
一样的,负数报通不过,
kingdom_0 2012-08-07
  • 打赏
  • 举报
回复
string strRegexFloat = @"^(?:[1-9][0-9]*\.[0-9]+|0\.(?!0+$)[0-9]+)$";

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧