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 :

Matching "sélectif" dans un texte


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Points : 193
    Points
    193
    Par défaut Matching "sélectif" dans un texte
    Bonjour,
    Je fais appel à vous parce que mes connaissances en regex sont assez limité et je ne vois pas comment obtenir ce que je veux...

    Dans un "texte", j'ai des éléments à matcher. Ces éléments sont de la forme "VC[01234]". La partie 01234 est variable. De ce fait j'utilise la regex '/VC\[([0-9]{5})\]/' et elle fonctionne. CEPENDANT, je souhaiterai matcher toutes les combinaisons de chiffres possible SAUF 00000. Comment est-ce que je peux procéder à ce matching?


    Cordialement,
    Julien

  2. #2
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    Bonjour ne peux tu pas faire de cette manière ?
    si vc[0-9] alors
    si NON vc0000 alors
    //code
    fin si
    fin si
    Pourquoi faire simple quand on peut faire compliqué.

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Points : 193
    Points
    193
    Par défaut
    Bin je cherche à matcher en une regex histoire de faire un seul appel à preg_match et d'éviter du traitement pour rien.
    Il est possible de faire des trucs vraiment puissant avec les regex, je doute qu'il ne soit pas possible de faire qqch d'aussi facile

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu peux le faire en utilisant cette pattern:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '~VC\[[0-9]{5}(?<!0{5})]~';
    Il suffit d'utiliser un test arrière négatif (?<!....) qui signifie littéralement non précédé par.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre habitué Avatar de denissay
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 103
    Points : 125
    Points
    125
    Par défaut
    Ou un test avant ^^ ... si celui-ci échou, il passera son chemin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '~VC\[(?!0{5})([0-9]{5})~';
    A voir par ICI

    Edit: Oh pardon, je n'ai pas vu la date du dernier post, tous ce que je cherchais c'est des non résolu xD ... Quoi que, ça pourrait aider
    Une réponse utile vous a aidé ? N'oubliez pas le
    Votre problème est résolu ? N'oubliez pas le

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/05/2009, 16h35

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