各位大侠,小弟求一正则表达式,7位数字的邮编,在第三位和第四位数字之间有一个"-",我写的是^(\d{0,3}(-\d{0,4})),可以为空,但是不可一超过7位数字,而且在第三位和第四位数字之间有一个"-",但是我匹配的时候就不能匹配三位的纯数字,例如:123不能被匹配,在正则表达式里括号里的内容是可有可无的吗?应该怎么写

解决方案 »

  1.   

    ^(\d{0,3}(-\d{0,4}))这是你写的???晕你加上一个$
    就可以了
    ^(\d{0,3}(-\d{0,4}))$不过你这么的话,这样的都可以匹配到!如0-0既然是七位,那么{0,3}{0,4}干什么???就直接写{3}{4}比如:
    ^(\d{3}(-\d{4}))$
      

  2.   

    @"^\d{3}(\-\d{1,3})?$"
    经验证符合要求
    其实你应该多看看正则表达式都代表什么意思就好了
    \d{3}表示数字要出现3次
    \-表示 -要出现一次
    \d{1,3}表示 数字要出现1到3次 如果后边的数字最少是2位的话可以该成@"^\d{3}(\-\d{1,3})?$"
    ? 表示前面的内容出现0或1次 完成非贪婪匹配
    (\-\d{1,3})? 这个组合则表示可以匹配 1:空,2:-1类型 3:-12类型 4:-123类型
    组合起来就是你要表达的意思了 不知道我这么说你能明白不
      

  3.   

    我是按照总位数是7位来写的 如果是单纯数字7位 前3后4的话改成下面的样子就好了
    @"^\d{3}(\-\d{1,4})?$"  
    @"^\d{3}(\-\d{2,4})?$"  
      

  4.   

    \d{3}-\d{4}
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html