IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire les numéros téléphoniques


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Extraire les numéros téléphoniques
    Bonjour,

    J'ai trouvé un Regex pattern pour extract les numeros téléphonique (stander, appliqué à tous les pays), quand j'ai testé il affiche l'erreur:"Unknown modifier ')' ". Merci de m'aider à faire mach ce function.

    Est-ce que ce pattern convient pour le format téléphonique française qui contient le "." souvant?,

    pattern origine :
    ^(?: (?:[\+]?(?<CountryCode>[\d]{1,3}(?:[ ]+|[\-.])))?[(]?(?<AreaCode>[\d]{3})[\-/)]?(?:[ ]+)?)?(?<Number>[a-zA-Z2-9][a-zA-Z0-9 \-.]{6,})(?: (?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?<Ext>[\d]{1,5}))?$
    This allows the formatting of most phone numbers.
    Matches
    1-800-DISCOVER | (610) 310-5555 x5555 | 533-1123
    Non-Matches
    1 533-1123 | 553334 | 66/12343

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function extract_phone_numbers($string)
    {
    $pattern='/^(?: (?:[\+]?(?[\d]{1,3}(?:[ ]+|[\-.])))?[(]?(?[\d]{3})[\-/)]?(?:[ ]+)?)?(?[a-zA-Z2-9][a-zA-Z0-9 \-.]{6,})(?: (?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?[\d]{1,5}))?$/i';
     
    preg_match_all($pattern, $string, $match);
     
    echo  $match[0]. "uuu".$match[1];
    }

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    le problème est que le caractère "/" est utilisé dans l'expression régulière
    donc soit tu échappes les caractères "/" en mettant "\/", soit tu utilises un autre délimiteur

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    le problème est que le caractère "/" est utilisé dans l'expression régulière
    donc soit tu échappes les caractères "/" en mettant "\/", soit tu utilises un autre délimiteur
    Merci de votre corriger, j'ai le modifié en mettant "\/",
    /^(?: (?:[\+]?(?[\d]{1,3}(?:[ ]+|[\-.])))?[(]?(?[\d]{3})[\-\/)]?(?:[ ]+)?)?(?[a-zA-Z2-9][a-zA-Z0-9 \-.]{6,})(?: (?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?[\d]{1,5}))?$/i

    mais toujour march pas:
    Compilation failed: unrecognized character after (? at offset 14

    Quelle problem il est?

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bonjour,



    Les portions suivantes
    (?<CountryCode
    (?<AreaCode
    (?<Number

    sont elles censées être les débuts :

    d'assertions arrières ? :
    soit (?<=CountryCode.........
    soit (?<!CountryCode.........

    d'assertions avant ? :
    (?=<CountryCode>.......
    (?!<CountryCode>.......

    de groupes nommés ? :
    (?P<CountryCode>........




    Nota:

    il faudrait quand même finir par remarquer que ’/’ n’est pas un caractère spécial dans le cadre des expressions régiulières et qu’il n’a pas à être échappé.

Discussions similaires

  1. Rajouter les numéros de ligne dans une colone d'une requete
    Par AntiSAL dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/11/2005, 20h07
  2. Extraire les n premiers termes d'une chaine
    Par knecmotet dans le forum C++
    Réponses: 4
    Dernier message: 03/03/2005, 16h05
  3. Réponses: 4
    Dernier message: 03/08/2004, 20h26
  4. Extraire les infos d'un tag ID3
    Par patkiller dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 30/05/2003, 15h35
  5. Extraire les icônes d'une DLL
    Par Globus dans le forum MFC
    Réponses: 6
    Dernier message: 13/09/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo