CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

求一正确正则表达式!谢谢大家!

楼主HardThink(还没断奶就混社会)2005-04-04 13:43:52 在 .NET技术 / C# 提问

要求:  
  对类似1027-013A-25-6091-3   货号进行验证。  
  货号解释:  
  前四位表示(月日1121表示11月21日),  
  后四位数字字母(大写)组合,  
  后跟1至2位数字,  
  后跟四位任意数字,  
  后跟1至3位数字    
  我写的正则  
  if(Regex.Match("1027-013A-25-6091-3",@"^[0-1][\d]{1}[0-3][\d]{1}-[A-Z0-9]{4}-[\d]{1,2}-[\d]{4}-[\d]{,3}$").Success)  
  总是验证不过去,不知道时候什么问题?  
  恕在下愚笨,我连如何对正则调试都不知道,请大家赐教!!谢谢了! 问题点数:40、回复次数:12Top

1 楼shclhs(hello)回复于 2005-04-04 13:59:42 得分 0

不知道Top

2 楼steedhorse(晨星)回复于 2005-04-04 14:02:05 得分 10

最后的{,3},不可以这么写,必须写{1,3}。Top

3 楼keenyliu(小妮子)回复于 2005-04-04 14:04:06 得分 10

“[0-1][\d]{1}[0-3][\d]{1}”这一段即前四位有问题!根据你写的,似乎只有两位。Top

4 楼keenyliu(小妮子)回复于 2005-04-04 14:08:01 得分 0

表示数字直接用\d{1}即可Top

5 楼xrascal(横刀夺爱)回复于 2005-04-04 14:08:29 得分 20

Regex.Match("1027-013A-25-6091-3",@"^((0[1-9])|(1[0-2]))(([0-2][0-9])|(3[0-1]))-[A-Z0-9]{4}-(\d{1,2})-((\d){4})-(\d){1,3}$").SuccessTop

6 楼keenyliu(小妮子)回复于 2005-04-04 14:09:00 得分 0

表示数字直接用\d{1}即可Top

7 楼steedhorse(晨星)回复于 2005-04-04 14:13:19 得分 0

xrascal(横刀夺爱)对于日期格式的检查的确更加严谨,但如果严格讲还是不够,因为那个还是还是会把2月30日算做正常日期。  
  所以我觉得倒是不如先像楼主那样简单判断一下,碰到日期,如果要严加判断,再通过另外写方法。Top

8 楼alexzhang00(三角猫)回复于 2005-04-04 14:15:12 得分 0

xrascal(横刀夺爱)     方法正确Top

9 楼keenyliu(小妮子)回复于 2005-04-04 14:18:01 得分 0

2月份的判断和年份相关,只有月份似乎不好严格控制啊。。。Top

10 楼keenyliu(小妮子)回复于 2005-04-04 14:23:53 得分 0

你参考一下这个日期的正则表达式吧  
   
  RegexValidDate   =   @"^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$";  
   
  可用于验证0000/00/00和0000-00-00和0000.00.00这三种格式的日期Top

11 楼HardThink(还没断奶就混社会)回复于 2005-04-04 14:50:31 得分 0

吓死我了,全是高人阿,崇拜ing,  
  steedhorse(晨星)   说的对,不能写{,3}我后来修改成{1,3}可以正确,   但同时发现了后面几位说的问题,2月份的验证问题,太.........BT了,先凑合着用吧......哭啊。。。Top

12 楼baobei7758(陵少)回复于 2005-04-04 14:52:21 得分 0

http://www.regexlib.com/DisplayPatterns.aspx?cattabindex=5&categoryId=5Top

相关问题

  • 求一正确正则表达式!谢谢大家!
  • 正则表达式一问
  • 正则表达式一问
  • 求一正则表达式
  • 求一正则表达式!!!
  • 求一正则表达式?
  • 求一正则表达式
  • 求一正则表达式
  • 求一正则表达式
  • 求一正则表达式

关键词

  • 验证
  • 数字
  • 后跟
  • 日期
  • 判断
  • 问题

得分解答快速导航

  • 帖主:HardThink
  • steedhorse
  • keenyliu
  • xrascal

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo