正则表达式:9个整数但允许使用空格和减号

时间:2015-11-19 14:17:39

标签: .net regex

我需要一个正则表达式,至少有9个数字,最多9个数字。但这些数字可以用空格或减号分隔 以下是一些带有true或false的示例字符串,以显示我想要的内容:

11-222-3333 true
11 222 3333 true
112223333   true
112-23-4567 true
11223333    false
11 22333333 false
1122333333  false

我目前使用此正则表达式:^[0-9\s\-]{9,11}$但如果字符串中没有空格或缩写,则允许超过9个数字。

我想要至少9个号码,最多9个号码。所以我需要忽略字符计数中的空格和缺点,但我无法找到。有人知道这样做的正确方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容(不需要前瞻):

^(\d[- ]*){9}$

逻辑:每个数字后面可以选择-space ..并且位数应为9

请参阅RegEx Demo

答案 1 :(得分:1)

您可以使用这个基于前瞻性的正则表达式:

\b(?=(?:[ -]?\d){9}\b)[\d -]+\d\b

RegEx Demo

(?=(?:[ -]?\d){9}\b)是一个积极的先行断言,以确保在每个数字前有9个数字,可选空格或连字符。