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

C Discussion :

Probleme expressions regulieres


Sujet :

C

  1. #1
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut Probleme expressions regulieres
    Bonjour

    Je me met aux expressions reguliere car je dois savoir si une phrase est bien fore ou pas.

    Une phrase me donnes les donnees recues (les SOUSBLOCK) dans un BLOCK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exemple de phrases 
    BLOCK=0 // il manque le block 0 entier - i.e. aucune donnees recues
    BLOCK=1&SOUSBLOCK=4-14// j ai pour le block 1 j ai recu les sous block de 4 a 14
    BLOCK=1&SOUSBLOCK=18// j ai pour le block 1 j ai recu le sous block 18
    Voici l expression regulieres que j ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "BLOCK= [[:digit:]]+ [&SOUSBLOCK= [[:digit:]]+ | [[[:digit:]]+ - [[:digit:]]+]]?
    PS j ai mis des espaces pour que ce soit plus lisible.

    Le probleme ici est que lorsque je marque "SBN=121jj"
    il me dit que cette expression est valide .

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il faut que tu échapes les [ qui ne doivent pas être interprétés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "BLOCK= [[:digit:]]+ \\[&SOUSBLOCK= [[:digit:]]+ (- [[:digit:]]+)?\\]"
    et que tu utilises des parenthèses pour les sous-masques
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    hummm dans http://nicolasj.developpez.com/articles/regex/#LII-C
    ce n etait pas explique.

    Dis moi et pour les sous-sous-masques j utilise les parentheses ?

    Quand je met ce que tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "BLOCK=[[:digit:]]+\\[&SOUSBLOCK=[[:digit:]]+(-[[:digit:]]+)?\\]"
    j ai faut a chaque fois .

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    oui, pour les sous-sous-*-masques c'est toujours des parenthèses, ensuite, pense à bien virer les espaces et à bien faire correspondre la regexp à ce que tu souhaite...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    j ai voulu tester la chaine de caractere suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "BLOCK=1451&SOUSBLOCK=1434"
    j obtiens une repose negative

    il y a un truc qui m echaape, j ai du mal a comprendre pkoi tu met // devant les crochets a certain moment ....

  6. #6
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    j ai fais une expression beaucoup plus simple :

    Lorsque je la compare a la phrase :
    Ca me dit que c bon, alors que ca ne devrait pas l etre.....

  7. #7
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    Citation Envoyé par Mr_Chut
    j ai fais une expression beaucoup plus simple :

    Lorsque je la compare a la phrase :
    Ca me dit que c bon, alors que ca ne devrait pas l etre.....

    Dans ma fonction j ai utiliser pour regcomp les flags TEG_NOSUB et REG_EXTENDED

    Pour regexec j ai mis pour les 3 dernier parametre 0, NULL, 0 (comme dans l exemple du lien cite plus haut).

  8. #8
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    Il manque pas le ^ devant et le $ derriere ? il n'y a pas non plus de #

  9. #9
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    dans la fac apparement, il n est pas necessaire de mettre ^, $ et #.
    ^ correspond au debut, $ a la fin... Mais a quoi sert # ?

  10. #10
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    je rejoins SnakemaN sur un point :

    si tu veux être sûr que ce soit toute ta chaîne qui corresponde au masque, il te faut le ^ et le $

    par contre pour le #, je pense qu'il parle des délimiteurs qu'on trouve dans les regexp perl, j'ignore s'ils sont nécessaires ici...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  11. #11
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    En tout cas je sais qu'en PHP ils sont utile et sans doute nécessaire !

  12. #12
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par SnakemaN
    En tout cas je sais qu'en PHP ils sont utile et sans doute nécessaire !
    oui, mais uniquement pour les expression du module PCRE (i.e. reg exp PERL) essaie de les mettre en utilisant le module POSIX (ereg etc...) et tu verras qu'ils seront refusés...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  13. #13
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Sans jouer les troubles fête, c'est quoi le rapport avec le C ?

  14. #14
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Sans jouer les troubles fête, c'est quoi le rapport avec le C ?
    juste une petite parenthèse...

    mais étant donné qu'il existe (même en C) des APIs pour les regexp POSIX et pour les regexp PERL, il convient de bien faire la différence entre les deux... donc c'est pas totalement déplacé
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

Discussions similaires

  1. Probleme Expression reguliere.
    Par khaled69100 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 27/06/2007, 18h46
  2. [langage] Probleme expression régulière
    Par killuaster dans le forum Langage
    Réponses: 5
    Dernier message: 29/10/2006, 20h21
  3. [RegExp] Problèmes expressions régulières
    Par Bluespike62 dans le forum Langage
    Réponses: 34
    Dernier message: 07/02/2006, 13h33
  4. [langage] Ptit Probleme expression réguliere avec perl
    Par Shoot Again dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2004, 13h44
  5. [langage] problème expression régulière
    Par chtiboss dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2004, 17h08

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