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 :

Regex PCRE : Match un type string [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par défaut Regex PCRE : Match un type string
    Bonjour tout le monde,

    Je suis actuellement en train de réalisé en binôme une application en PHP CLI qui a pour but de... refaire un SGBDR.

    Pour ça, nous en venons bien évidemment à vérifier la syntaxe des requêtes saisies par l'utilisateur, notamment lorsqu'il saisit une chaîne de caractère ! (nous devons gérer le type, mais pas la taille des champs)

    Les contraintes :
    Une chaîne de caractère d'un seul mot n'est pas forcément entourée de "
    Une chaîne de caractères entourée de " peut accepter n'importe quelle valeur de n'importe quelle t'aille, y comprit les " échappés (\")

    Voici la regex que j'ai actuellement pour valider cette syntaxe (qui ne marche pas bien évidemment, d'où mon problème)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern_string = '((".*?[^\\]")|([^\., \)]+))';
    Dans la partie du mot seul, je dis que j'ai besoin de n'importe quel caractères exceptés :
    le point (qui n'existera que si on me spécifie une table.champ)
    La virgule, l'espace, la parenthèse fermante : Ce sont des seuls caractères qui me permettent de savoir que ma valeur se termine pour continuer ma requête.

    Comment puis-je faire en sorte de pouvoir donc valider une chaine de caractères entourés de doubles-quotes pouvant contenir des doubles-quotes échappées svp ?

    Merci d'avance...
    V3lkin.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 123
    Par défaut
    Citation Envoyé par V3lkin Voir le message
    Bonjour tout le monde,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern_string = '((".*?[^\\]")|([^\., \)]+))';
    Comment puis-je faire en sorte de pouvoir donc valider une chaine de caractères entourés de doubles-quotes pouvant contenir des doubles-quotes échappées svp ?
    V3lkin.
    Bonjour,
    si j'ai bien compris ta question je crois qu' il faut faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern_string = '#\"(.*)\"#';
    bonne chance

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par défaut
    Citation Envoyé par saramery Voir le message
    Bonjour,
    si j'ai bien compris ta question je crois qu' il faut faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern_string = '#\"(.*)\"#';
    bonne chance
    Hmmm, le problème vient du fait que ce pattern est destiné à être inclus dans un pattern bcp + grand.

    De plus... je ne sais pas ce que veulent dire les "#" ?? J'utilise des "/" pour délimiter mes patterns, ça change quelque chose ?

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 123
    Par défaut
    Citation Envoyé par V3lkin Voir le message
    Hmmm, le problème vient du fait que ce pattern est destiné à être inclus dans un pattern bcp + grand.

    De plus... je ne sais pas ce que veulent dire les "#" ?? J'utilise des "/" pour délimiter mes patterns, ça change quelque chose ?
    le # c'est pour délimiter le pattern seulement

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par défaut
    En tout cas le pattern n'est pas bon, car il devrait s'arrêter à la première double-quote (ce qui ne prend donc pas en compte l'échappement), de +, de cette façon, il ne s'arrêtera pas forcément à la première double-quote... :s

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 123
    Par défaut
    j'ai pas bien compris ta question mais il faut pas échapper les caractères qui se trouvent dans une classe[]

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

Discussions similaires

  1. Type unit, type string, match with
    Par lioudow dans le forum Caml
    Réponses: 8
    Dernier message: 12/02/2007, 17h12
  2. Type String* en paramètre...
    Par Invité dans le forum MFC
    Réponses: 4
    Dernier message: 24/02/2004, 19h48
  3. Convertir une date en type string
    Par ziboux dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/10/2003, 10h52
  4. [VB6] creation de variable de type string dynamiquement
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/06/2003, 16h59
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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