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 :

Aide pour modifier une Regex svp [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut Aide pour modifier une Regex svp
    Bonjour à tous,

    J'utilise une regex pour filtrer un fichier contenant deux chaines séparées par ":" par ligne soit "chaine1:chaine2", afin que "chaine1" contienne un "@" et "chaine2" au moins une majuscule :

    ^[^:@?]*[@?][^:]*:.*?[A-Z].*?

    Le "@" pour extraire uniquement les emails vous l'aurez compris, mais j'aimerais maintenant ajouter le fait de ne cibler que les adresses françaises.

    De préférence "chaine1" fini par ".fr"
    Ou alors, la ligne contient ".fr:"

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Essaie ça.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $pattern = "/^[^@]+[@].+\.fr:.*?[A-Z].*?$/";$texte   = "toto@titi.fr:arRivAge";
    preg_match_all($pattern,$texte,$arr);
    var_dump($arr);

    Mais nul doute que si Cosmoknacki passe par ici il trouvera mieux.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut
    Merci badaze ! Sympa, cela fonctionne parfaitement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[^@]+[@].+\.fr:.*?[A-Z].*?$
    Par contre me suis rendu compte que j’oubliais certains domaines, tel que laposte.net, ce serait possible de l’ajouter à cette expression par exemple ?

    Je peux ajouter les .net comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[^@]+[@].+((\.fr:)|(\.net:)).*?[A-Z].*?$
    Mais je n’arrive pas avec laposte.net.

    Je pourrai peut-être même comprendre la logique, et savoir modifier comme un grand à l’avenir sans vous embêter.

    Merci beaucoup

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $pattern = "/^[^@]+[@].+\.(?:fr|net):.*?[A-Z].*?$/";$texte   = "toto@titi.net:arRivAge";
    preg_match_all($pattern,$texte,$arr);
    var_dump($arr);
    ?: indique que le groupe entre les () n'est pas capturant. Essaie le code tel quel avec et sans ?: et tu comprendras.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut
    Merci pour ta proposition badaze, mais elle match tous les domaines .net et pas seulement les laposte.net, j’ai essayé multiples combinaisons (au doigt mouillé) sans succès, je crois que c’est le "." (point) de laposte.net qui me gêne...

  6. #6
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pattern = "/^[^@]+[@](?:.+\.fr|laposte\.net):.*?[A-Z].*?$/";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Besoin d'aide pour construire une regex complexe
    Par Predax dans le forum Langage
    Réponses: 2
    Dernier message: 06/03/2013, 08h52
  2. Besoin d'aide pour écrire une regex
    Par kao98 dans le forum Général Python
    Réponses: 4
    Dernier message: 05/03/2010, 15h59
  3. Aide pour modifier une fonction
    Par lcoulon dans le forum Débuter
    Réponses: 1
    Dernier message: 13/10/2009, 15h11
  4. [RegEx] Aide pour créer une regex
    Par lemirandais dans le forum Langage
    Réponses: 2
    Dernier message: 02/08/2009, 16h40
  5. [VB6]besoin d'aide pour modifier une application
    Par mister perfect dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 19/05/2006, 11h46

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