[VB.NET]求一个正则表达式

VB.NET源码-156个实用实例哦…… <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
求一个正则表达式
现在在做一个会计科目的程序。用户输入会计科目的原则是这样的:
1.只能是数字或数字加分隔符号,且最后一位不能是分隔符号。
2.会计科目的分隔符号可以是.(小数点)或者-(减号),但不同时包含.(小数点)和-(减号)
3.分隔符号可能有多个,即会计科目可能有多级
例如:
以下会计科目是正确的:
1000
1000.01
1000.01.005
1000-01-05
2121
2121-34

但下面这样写就不对:
1000.01-1
1000-
2121.
123A

请问与正则表达式如何写,谢谢!
__________________________________________________________________________
//--两次 验证

Regex regi = new Regex(@ (^/d[/d-]*/d$)|(^/d[/d/.]*/d$) );
string inreg = 1.000.01.005 ;
if (regi.IsMatch(inreg))
{
regi = new Regex(@ [^/d/./d]|[^/d-/d] );
if (!regi.IsMatch(inreg))
{
//全部成功做的你事
}
else
{
//遗憾2层验证失败...
}
}
else
//根本通不过...
__________________________________________________________________________
^/d+$|^/d+(-/d+){1,}$|^/d+(/./d+){1,}$
__________________________________________________________________________
以上均测试通过
----------------------------------
Regex reg = new Regex(@ ^/d+$|^/d+(-/d+){1,}$|^/d+(/./d+){1,}$ );
string str = 1000.01-1 ;
MessageBox.Show(reg.IsMatch(str).ToString());
__________________________________________________________________________
楼上的正解 .
我那个有错.

^/d+$|^/d+(-/d+)+$|^/d+(/./d+)+$
__________________________________________________________________________
To hertcloud(·£孙子兵法£·)

其实用一个正则就可以了

^/d+(?:(/.|/-)/d+)?(?:/1/d+)*$
__________________________________________________________________________
leohuang(LEO) () 信誉:91 Blog 加为好友
^/d+$|^/d+(-/d+){1,}$|^/d+(/./d+){1,}$


也是一种实现方法
不过这里用向后引用实现起来更通用一些.比如他要求,.-/等多个符号都合法的时候,^/d+(?:(/.|/-)/d+)?(?:/1/d+)*$就改起来就很方便了
__________________________________________________________________________
楼上是正则高手,领教过了
__________________________________________________________________________
两次 验证
//涨知识了
以后又多了一个思路
__________________________________________________________________________
^/d+(([-|/.]{1})/d+(/2/d+)*)?$

这样可以?
__________________________________________________________________________
来学习的
__________________________________________________________________________
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值