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 :

Besoin d'aide pour améliorer le résultat [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut Besoin d'aide pour améliorer le résultat
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!preg_match('#^[a-zA-Z ()]+$#', $mun_nombre))
    {
    	echo "Nombre incorecto"."<br />";
    }
    cette regex me saire a verifier si le champ mun_nombre uniquement de lettre (majuscule ou minuscule) il peut y avoir un ou plusieur espace ainssi que des parenthese ouvrante et fermente

    je voudrais pouvoir rajouter des lettre special comme :
    ñ
    à
    ò
    ì
    .
    .
    .


    comment doit-je modifier ma regex pour quelle accepte c'est caracteres?
    merci beaucoup de votre aide.




    j'ai la meme question pour la regex suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#^[0-9, ]+$#', $mun_superficie)
    celle si permet de verifier que la variable $mun_superficie ne contien que des chiffre espace et virgule mais je voudrait qu'il puise y avoir une seule virgule ou pas de virgule mais pas deux virgule par exemple
    pour les espaces et le chiffre il peut y en avoir plusieur c'est pas un probleme
    merci

  2. #2
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#^[[:alpha:] ()]+$#', $mun_nombre);
    Pour la 2ième, substr_count fera l'affaire car guère possible de faire ça avec une seule expression régulière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr_count($mun_superficie, ',') < 2 && preg_match('#^[0-9, ]+$#', $mun_superficie);

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut
    ok merci de ton aide

    je croi que j'ai a peut pres saisie comment sa marche merci beaucoup

    Par hasar taurait pas un tuto a me conseiller pour les regex pasque pour avoir des explication sur le fonctionnement des regex sur le forum ya jamais personne qui te répond

    merci

  4. #4
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Je pense (je suis même sur) qu'il y a pas mal de tuto en français sur les expressions rationnelles sur ce site. Sinon, il y a toujours la doc php http://fr2.php.net/manual/en/referen...ern.syntax.php et http://pcre.org (pcre étant le moteur de regex utilisé par les fonctions preg_*)

  5. #5
    Membre habitué Avatar de daniel61
    Inscrit en
    Décembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 139
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par teen6517
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#^[0-9, ]+$#', $mun_superficie)
    celle si permet de verifier que la variable $mun_superficie ne contien que des chiffre espace et virgule mais je voudrait qu'il puise y avoir une seule virgule ou pas de virgule mais pas deux virgule par exemple
    pour les espaces et le chiffre il peut y en avoir plusieur c'est pas un probleme
    merci
    Citation Envoyé par teen6517
    une seule virgule ou pas
    les caractères de base réprésentant les répétitions sont '*' pour 0 ou plusieurs fois, '+' pour 1 ou plusieurs fois, '?' pour 0 ou 1 fois. donc le point de départ de l'expression doit être ',?' pour dire 0 ou 1 virgule, car c'est ta seule exception.

    Citation Envoyé par teen6517
    ne contien que des chiffre espace et virgule
    le cas de la virgule est réglé... reste les autres caractères que tu avais déjà bien énuméré '[0-9 ]'... si la seule virgule acceptée peut-être à n'importe quel endroit dans la chaine source, alors elle a 0 ou plusieurs fois les caractères '[0-9 ]' à sa gauche et 0 ou plusieurs fois les caractères '[0-9 ]' à sa droite. le caractère de répétition '*' est tout indiqué.

    ça donne [0-9 ]*,?[0-9 ]*... comme tu sembles le savoir, le caractère ^ représente le début de la ligne (ou chaine) et le caractère $ représente la fin de la ligne (ou chaine).

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match('#^[0-9 ]*,?[0-9 ]*$#', $mun_superficie)
    s'impose de lui même et tu en étais proche.

    Citation Envoyé par teen6517
    Par hasar taurait pas un tuto a me conseiller pour les regex pasque pour avoir des explication sur le fonctionnement des regex sur le forum ya jamais personne qui te répond
    au début, il est effectivement frustrant d'essayer de comprendre ce qui resemble plus à une incantation en provenance directe d'une tombe égyptienne. la pratique est la seule façon de rendre ces hiéroglyphes aussi limpides que les lacs d'il y a 1 million d'années. il ne faut pas se décourager, mais persévérer en s'imposant des exercices simples au début et, au besoin, de venir poser une question extrêmement précise... tu progresseras très vite si tu en as vraiment l'intention.

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Points : 197
    Points
    197
    Par défaut
    enfin une vrai explication merci beaucoup a toi daniel61

    et merci pour les tutos goodpz

    je vais les buchets un peut et vait commencer a faire des exo dessu
    car comme la dit notre ami daniel61
    rein de vaux la pratique pour assimiller et comprendre ce langage d'outre tombe

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

Discussions similaires

  1. [XL-2007] Besoin d'aide pour améliorer facture proforma
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2014, 21h06
  2. [XL-2007] Besoin d'aide pour améliorer mon code copier-coller
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2014, 17h14
  3. [XL-2007] Besoin d'aide pour améliorer ma facture
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2012, 01h57
  4. [CV] Besoin d'aide pour améliorer mon cv
    Par Alain Defrance dans le forum CV
    Réponses: 14
    Dernier message: 29/04/2008, 01h04
  5. Besoin d'aide pour amélioration de regxp
    Par shinux2004 dans le forum Langage
    Réponses: 10
    Dernier message: 03/09/2005, 17h16

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