寻找正则表达式以在单独的行上验证10位数字

时间:2017-04-25 20:50:51

标签: regex vb.net

我想验证用户输入的值

a. Starts with 2
b. 10 digit in length
c. could be multiple numbers separated by new line

例如

2123123123 - Valid

2123123123
2987654321 - Valid

2123123123
newline    - Invalid

我使用的表达式为"^[2]\d{9}(?:\r\n[2]\d{9})*$"。只有当我输入一个10位数字但不能在换行符上使用多个数字

时,它才有效

3 个答案:

答案 0 :(得分:0)

如果您只想允许用一个新行分隔的数字,您可以使用以下方法:

^2\d{9}(\r\n2\d{9})?$

但是如果你想考虑任意数量的行,你必须切换到:

^2\d{9}(\r\n2\d{9})*$

我应该承认\r可选地解析为有效的\r\n\n。如果您还需要考虑数字周围是否有空格,您应该考虑:

^\s*2\d{9}(\s*\r?\n\s*2\d{9})*\s*$

锚点^$是必要的,或者您可以接受以2开头的十位数序列或以一行开头的序列结束的行。< / p>

有关最后一个正则表达式,请参阅此demo

答案 1 :(得分:0)

下面修复了我的问题,

^ [2] \ d {9}(?:吗?\ r \ n [2] \ d {9})* $

感谢大家的帮助

答案 2 :(得分:-1)

这是我的解决方案:

"^2\d{9}(\r\n2\d{9})*$"