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 :

Modification d'une expression régulière [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Modification d'une expression régulière
    Bonjour,

    J'utilise l'expression régulière suivante : https://regex101.com/r/kZ2fK4/2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (\((?<fonction>(.*))\))?(?<vehicule>(.*))\s/\s(?<motif>(.*))/\s?(?<numero>\d+[A-Z]*)?\s?(?<voie>(.*)),\s(?<commune>(.*))
    Voici un exemple de donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (TEST1)TEST2 / TEST3 / 1 RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1BIS RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1TER RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1 BIS RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1 TER RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1A RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1B RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1C RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1 A RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1 B RUE DU TEST, COMMUNE
    (TEST1)TEST2 / TEST3 / 1 C RUE DU TEST, COMMUNE
    Je voudrais prendre en compte le complément du numéro quand celui-ci n'est pas collé au numéro (exemple : BIS, TER, A, B, C, etc.).

    Je ne sais pas comment ajouter ce type de données que je connais et que je peux faire évoluer dans mon expression régulière au fil du temps.

    J'ai essayé de modifier mon expression régulière avec l'ajout d'un OU (|) mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (\((?<fonction>(.*))\))?(?<vehicule>(.*))\s/\s(?<motif>(.*))/\s?(?<numero>\d+[A-Z]*|\d+\sBIS)?\s?(?<voie>(.*)),\s(?<commune>(.*))
    Merci pour votre aide,
    ZiP

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /\((?<fonction>[^\)]+)\)\s*(?<vehicule>[^\/]+)\/\s*(?<motif>[^\/]+)\/\s*(?<numero>\d+\s*(?:bis|ter|[a-c])?)\s*(?<voie>.+),\s*(?<commune>.*)/gi
    https://regex101.com/r/mK4yK6/2

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonsoir Eric,

    Merci pour votre aide et l’amélioration apportée à mon expression régulière.

    Tout fonctionne comme je le voulais !

    ZiP

  4. #4
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour Eric,

    Voici mon expression régulière adaptée à mes besoins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (?<motif>[^-]+)\s-\s(?<commune>.+)\s(?<numero>[\d-/]+\s?(?:BIS|TER|[A-Z]\s?)?)?\s(?<voie>.*)\s-\s(?<vehicule>.+)
    Je voudrais qu'elle ne fonctionne pas si le véhicule contient le caractère : ) (parenthèse fermante)

    Un exemple, j'ai dans mon traitement cette ligne qui fonctionne et me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XXXXXXXXXXXXX YYYYYYYYYYYY ZZZZZZ : AAAA 01  - BBBBBBBBBB - CCCCCCCCC DD EEEEEEE (FFFFFF - GGG HH IIIIIIII)
    https://regex101.com/r/oR2mZ9/1

    J'ai essayé pas mal de choses mais toujours sans succès.

    Merci d'avance pour votre aide,
    ZiP

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Après une nuit de sommeil, j'ai trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?<motif>[^-]+)\s-\s(?<commune>.+)\s(?<numero>[\d-/]+\s?(?:BIS|TER|[A-Z]\s?)?)?\s(?<voie>.*)\s-\s(?<vehicule>[A-Z\s0-9]+)$
    ZiP

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

Discussions similaires

  1. [EXP] Evaluation dans une expression régulière
    Par SergentHeinz dans le forum Langage
    Réponses: 7
    Dernier message: 10/11/2005, 18h17
  2. Une expression réguliére
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/09/2005, 20h14
  3. Réponses: 6
    Dernier message: 17/08/2005, 12h38
  4. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 10h54
  5. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22

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