2017-03-01 172 views
0

我需要一个正则表达式的匹配,可以用分号(;)与数长度来分离可以是7点或更多的字符0-9+-_一个或多个电话号码的一个或多个电话。正则表达式包含数

类似如下:

1234567 
1234567;1234567 
1234567;+0591234567 
1234567777;1234567777;1234567891 

我试过下面的正则表达式,但它失败:

^[0-9.-_+]{7,}(;[0-9.-_+]{7,})*$ 
+2

[电话号码验证综合正则表达式]的可能重复(http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation) – miken32

+0

您需要更精确一些你正在尝试做什么,并展示你如何使用这个正则表达式。如果我猜你的意图,那么它应该工作:https://regex101.com/r/WP4p6F/1 – Pshemo

回答

2

这几乎是正确的只是你需要使用\(反斜线)前在正则表达式中使用的字符。尝试IT-

^[0-9.\-_+]{7,}(;[0-9.\-_+]{7,})*$ 

UPDATE:

它更完美的比previous-

(?<=\;|\A)[\+\-\_]?\d{7,}(?=\;|\Z) 

你可以试试它here。积分为@sudoman的评论。

+0

只有'-'在'[..]'中是特殊的,因为它可以用来创建一系列的字符,如'az '。我们不需要在那里逃避'''或'+'。 – Pshemo

+0

如果它是最后一个字符,则不需要转义'-' – miken32

+1

'+'字符在正则表达式中用作1到INF的重复,' - '用于提及范围'。'。用于提及任何角色。所以你需要逃避它们。 –