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

前端之家收集整理的这篇文章主要介绍了[VB.NET]求一个正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
求一个正则表达式 现在在做一个会计科目的程序。用户输入会计科目的原则是这样的: 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,}$ ); 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+(/2/d+)*)?$ 这样可以? __________________________________________________________________________ 来学习的 __________________________________________________________________________ 原文链接:https://www.f2er.com/vb/263556.html

猜你在找的VB相关文章