2010-04-07 19 views
2

我有電話區號爲所有國家(電話號碼前綴)的列表的表情,我想他們在 國名分裂和實際的代碼,這樣我就可以把再成XML。經常用於將國際電話區號

我試圖來回,但不能得到一個正則表達式往那個通吃的情況考慮在內。 我認爲這對於有經驗的人來說相當簡單。

的代碼具有以下格式:

阿富汗93
安圭拉1 264
南極洲6721
安提瓜和巴布達1 268
波斯尼亞和黑塞哥維那387
加拿大1
剛果共和國在242
象牙海岸225
愛爾蘭(愛爾蘭)353
美國1

的美國

有其中約235總,但這些都是常客的例外。

^[a-zA-Z]\s,'()] for between 1 and X words and then it is [0-9\s]{1,5}$ for the numbers: 

X 
XX 
XXX 
XXXX 
X XXX 

如果我要表達它作爲一個句子這將是:「從行開始,採取一切字符(1),包括空間,「(),直到你遇到數字,然後採取所有這些,包括空間(2),直到遇到換行符爲止。「

我使用TextMate是和文檔說:

TextMate的使用由K. Kosako的Oniguruma正則表達式 庫。

我將不勝感激:) 謝謝。

+0

既然你是在OS X(TextMate中...)我建議使用Regexhibit(http://homepage.mac.com/roger_jolly/software/#regexhibit)至創建正則表達式,如果你是他們新來的 – Pieter 2010-04-07 12:20:26

+0

嗨彼得,謝謝。 Regexhibit正在下載,因爲我輸入這個。它讓我「無法正確表達你的正則表達式嗎?不知道它們匹配什麼以及它們遺漏了什麼?厭倦了每次都必須編寫測試程序?RegExhibit可以提供幫助。」 :) – RickiG 2010-04-07 12:39:44

回答

2

posix regex應該是足夠了:^[a-zA-Z ]+[0-9 ]+$

+0

喜歡靈魂樂,非常感謝你! 這很快:)使我最後的1.5小時似乎很浪費。 它結束了這樣的: 發現: ^([A-ZA-Z] +)([0-9] +)$ 取代: $ 2 $ 1 就像一個魅力。 – RickiG 2010-04-07 12:12:35