2014-03-03 36 views
0

我需要用這種格式電話正則表達式(555)555-5555與出使用括號{}

(555)555-5555

我圍繞着這一

\(?\b[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}\b 
找到匹配的電話號碼

我知道這是正確的方法,但在我使用的平臺中存在一個將{{}括號從正則表達式代碼中移除的錯誤。我已經報告過這個錯誤,但是他們可能需要一段時間才能修復它併發布更新,所以我想知道是否有另一種方法可以用括號來實現。

+2

您確定這是一個錯誤,而不是您的實施?你在使用什麼平臺? –

回答

5

[0-9]{3}是一回事[0-9][0-9][0-9]\d\d\d

在滿會是這樣的:

\(?\b[0-9][0-9][0-9]\)?[-. ]?[0-9][0-9][0-9][-. ]?[0-9][0-9][0-9][0-9]\b 

\(?\b\d\d\d\)?[-. ]?\d\d\d[-. ]?\d\d\d\d\b 
+0

你快! :-)如果平臺支持它,那麼\ d \ d \ d是最乾淨的。不幸的是\ d在所有正則表達式引擎中都不可用。 – pasztorpisti

+0

我想我對每個平臺都不熟悉,但是我想如果'\ b'可用,'\ d'可能也是。無論哪種方式,我想它的好處還有另一種選擇。 – smerny

0

只使用\d每個characcter你需要匹配

[0-9]{3}\d\d\d

[0-9]{4}\d\d\d\d

0

嗯,當然。不要說「適用模式{N}次」,寫「patternpatternpattern ......」 n次:

\(?\b[0-9][0-9]0-9]\)?[-. ]?[0-9][0-9][0-9][-. ]?[0-9][0-9][0-9][0-9]\b 
0

只需用支架之前,該序列的迭代給定數量的更換支架。

\(?\b[0-9][0-9][0-9]\)?[-. ]?[0-9][0-9][0-9][-. ]?[0-9][0-9][0-9][0-9]\b