【发布时间】:2010-04-07 12:00:41
【问题描述】:
我有一个所有国家/地区的呼叫代码列表(电话号码前缀),我想将它们拆分为 国家名称和实际代码,以便我可以将其放入 xml。
我来回尝试过,但无法得到一个考虑所有情况的正则表达式。 我认为对于有一点经验的人来说这相当简单。
代码有以下格式:
阿富汗 93
安圭拉 1 264
南极洲 6721
安提瓜和巴布达 1 268
波斯尼亚和黑塞哥维那 387
加拿大 1
刚果共和国 242
科特迪瓦 225
爱尔兰 (Eire) 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 使用 Oniguruma 正则 K. Kosako 的表达式库。
如果能提供任何帮助,我将不胜感激:) 谢谢。
【问题讨论】:
-
由于您使用的是 OS X (TextMate...),如果您不熟悉正则表达式,我建议您使用 Regexhibit (homepage.mac.com/roger_jolly/software/#regexhibit) 创建正则表达式
-
嗨,彼得,谢谢。当我输入这个时,Regexhibit 正在下载。它让我感到“难以让你的正则表达式恰到好处?不确定它们匹配什么以及遗漏什么?厌倦了每次都必须编写测试程序?RegExhibit 可以提供帮助。” :)
标签: regex