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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 expérimenté
    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
    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

  3. #3
    Membre confirmé
    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
    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 confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    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.

  5. #5
    Membre éprouvé 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
    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

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