2010-04-07 3 views
2

J'ai une liste de codes d'appel pour tous les pays (les préfixes de numéro de téléphone), je voudrais les séparer en le nom du pays et le code réel afin que je puisse mettre alors dans un xml.Expression régulière pour les codes d'appel de pays divisés

J'ai essayé d'aller de l'avant, mais je n'arrive pas à faire une regexp qui prenne en compte tous les cas. Je pense que c'est assez simple pour quelqu'un qui a un peu d'expérience.

Les codes ont ces formats:

Afghanistan 93
Anguilla 1 264
Antarctique 6721
Antigua-et-Barbuda 1 268
Bosnie-Herzégovine 387
Canada 1
Congo, République du le 242
Côte d'Ivoire 225
Irlande (Eire) 353
Etats-Unis d'Amérique 1

Il y a environ 235 d'entre eux au total, mais ce sont les habitués et les exceptions.

^[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 

Donc, si je l'exprimer en une phrase ce serait: « du début d'une ligne, prendre tous les caractères (1) y compris l'espace, '() jusqu'à ce que vous rencontrez des chiffres, prenez alors toutes ces questions, notamment espace (2) jusqu'à ce que vous rencontriez un saut de ligne. "

J'utilise TextMate, et docs dit:

TextMate utilise la bibliothèque d'expression régulière Oniguruma par K. Kosako.

Je souhaiterais recevoir de l'aide :) Merci.

+0

Puisque vous êtes sur OS X (TextMate ...) Je recommande d'utiliser Regexhibit (http://homepage.mac.com/roger_jolly/software/#regexhibit) à créez des expressions régulières si vous êtes nouveau avec eux – Pieter

+0

Salut Pieter et merci. Regexhibit est en cours de téléchargement lorsque je tape ceci. Il m'a eu à "avoir du mal à obtenir vos expressions régulières juste? Pas sûr de ce qu'ils correspondent et ce qu'ils omettent? Fatigué d'avoir à écrire des programmes de test à chaque fois? RegExhibit peut aider." :) – RickiG

Répondre

2

Ce posix regex devrait être suffisant: ^[a-zA-Z ]+[0-9 ]+$

+0

Bonjour soulmerge et merci beaucoup! C'était rapide :) fait que mes dernières 1,5 heures semblent assez gaspillées. Il a fini comme ceci: trouver: ^ ([a-zA-Z] +) ([0-9] +) $ remplacerons: 2 $ $ Fonctionne comme un charme . – RickiG

Questions connexes