正则表达式为9个数字字符和可选的两个连字符

时间:2013-09-26 16:36:17

标签: c# regex

我正在寻找一个正则表达式来匹配9个数字字符和可选的1或2个连字符。 连字符的位置无关紧要。我能够让正则表达式有一个连字符:

^([0-9]{9}|(?=^[^-]+-[^-]+$)[0-9-]{10})$

如何修改它以包含另一个连字符?

2 个答案:

答案 0 :(得分:0)

这应该这样做

^(?!([^-]*-){3,})(?=(\D*\d\D*){9}$)[\d-]+$
 ---------------  ----------------
         |              |->match only if there are 9 digits
         |
         |->don't match if there are 3 or more -

答案 1 :(得分:0)

以下使用前瞻并确保它符合使用0-2连字符的数字进行复合的规则。

(?=^\d*-?\d*-?\d*$)^-*(\d-*){9}$