2017-03-01 174 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的重複,' - '用於提及範圍'。'。用於提及任何角色。所以你需要逃避它們。 –