2010-03-21 7 views
2

Sipdroid sur Android a une recherche & remplacer la méthode, qui utilise regex. J'essaie de l'utiliser pour m'assurer que tous les appels sortants ont un code de pays au format 00XXstandardiser le numéro de téléphone international code utilisant seulement regex

Je veux également qu'il mette 0045 devant le numéro, si aucun code de pays n'est présent.

Le premier, j'ai résolu, mais je ne peux pas comprendre comment faire la deuxième chose.

Recherche:

\A(((\+)(\d{2})?)|(00(\d{2})?)|)((\d|\s)+)\Z 

Remplacer:

00$4$6$7 

J'utilise http://www.regexplanet.com/simple/index.html pour le tester, avec les chaînes de test: "12345678", "4512345678" et " 004512345678 " Ils doivent tous retourner" 004512345678 ".

Répondre

2

Vous devez savoir que les codes de pays peuvent comporter 3 ou 4 chiffres. Pour plus de détails, voir . Le remplacement que vous avez fait est assez sensible au contexte, donc je suppose qu'il n'est pas possible de le résoudre avec une seule regex (d'une manière assez simple pour le rendre réellement utilisable). Là encore, je ne suis pas un gourou regex.

+0

Bien fichu. Je ne savais pas. Devinez qui rend cela presque impossible à retirer, je vais juste le faire remplacer + avec 00 alors – DarkFox

+0

Ce n'est probablement pas correct non plus, si cela vous inquiète de travailler pour d'autres, c'est. – msw

+0

Mon problème principal est que tous mes numéros de téléphone dans mon carnet de contacts ont des numéros au format +45 ... mais mon fournisseur SIP ne supporte que 0045 ... – DarkFox

Questions connexes