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 :

utilisation de [:alpha:]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut utilisation de [:alpha:]
    Bonjour à tous

    je voulais savoir
    [:alpha:]
    [:alnum:]

    ...

    s'utilise avec quelles fonctions

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Les fonctions POSIX (ereg*), dépréciées, comme celles de l'extension PCRE (preg_*). A noter que pour ces dernières, elles doivent apparaître dans une classe (ie [[:alpha:]] par exemple).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    pour ereg apparement il faut utiliser [[:alpha:]]

    Quand j'utilise [:alpha:] ça ne passe pas avec les lettres accentuées. Comment je dois les inclure simplement.

    ereg('[[:alpha:]]',$val);

    Si $val='ééé' par exemple ça me renvoie false.

    merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    • Les fonctions ereg*, comme je l'ai dit, sont dépréciées : il est vivement conseillé d'utiliser l'extension PCRE ;
    • Les fonctions ereg*, contrairement à celles de l'extension PCRE, ne tiennent pas compte des locales donc [:alpha:] est le strict équivalent à [a-zA-Z] excluant tous nos caractères accentués. Les fonctions preg_* devraient en revanche, inclure les caractères accentués, si vos locales sont configurés en ce sens.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    j'ai tout compris merci, mais j'ai toujours un probleme

    preg_match('[[:alpha:]]',$val);

    me renvoie un warning :
    Warning: preg_match() [function.preg-match]: Compilation failed: POSIX named classes are supported only within a class at offset 0 in test_script.php on line 52


    merci de votre patience

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il vous manque les délimiteurs de début/fin de motif (puisqu'il vous prend vos premier/dernier crochets pour remplir cette fonction) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('~[[:alpha:]]~',$val);
    Ces délimiteurs sont indispensables puisque l'on peut placer des options à la fin du motif. A peu près n'importe quel caractère peut faire office de délimiteur. Il est cependant judicieux d'écarter tout métacaractère et tout caractère figurant dans ce motif (car il devra alors être échappé).

    Pour approfondir le sujet : Initiation aux expressions régulières en PHP.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    C'est bien compliqué quand même ces expressions régulières. Je fais des essais pour comprendre mais c'est un peu dur.

    [[:alpha:]] chaine qui contient au moins une lettre
    ^[[:alpha:]] chaine qui commence par une lettre
    [[:alpha:]]$ chaine qui fini par une lettre

    mais quand je fais ^[[:alpha::]]$ pour aaa222aaaa ça ne marche pas. J'ai beau lire tous les cours que je trouve sur le net, c'est plutot indigeste.

    merci

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par mosto
    mais quand je fais ^[[:alpha:]]$ pour aaa222aaaa ça ne marche pas. J'ai beau lire tous les cours que je trouve sur le net, c'est plutot indigeste.
    Signifie une chaîne d'une seule "lettre".

    Pour une chaîne composée uniquement de lettres à raison d'au moins une, ce serait :
    ^[[:alpha:]]+$
    Les possibilités son multiples

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 16
    Points
    16
    Par défaut

    Oui mais justement si je veux tester une chaine du type

    aaaa1111aaaaa

    il faut faire comment

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par mosto
    Oui mais justement si je veux tester une chaine du type

    aaaa1111aaaaa
    Et plus précisément ?
    ^[[:alpha:]]+[[:digit:]]+[[:alpha:]]+$
    Au moins une lettre puis au moins un chiffre et enfin au moins une lettre ?

    (on peut raccourcir en écrivant \d au lieu de [[:digit:]])

Discussions similaires

  1. Utilisation de l'algorithme d'élagage alpha-beta
    Par pottiez dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 15h42
  2. [RegEx] Utilisation de [:alpha:]
    Par Le_Moustachu dans le forum Langage
    Réponses: 2
    Dernier message: 11/03/2008, 05h12
  3. [FLASH MX2004] Utilisation de l'alpha d'un mask
    Par arnolem dans le forum Flash
    Réponses: 2
    Dernier message: 07/12/2005, 14h22
  4. Alpha blending
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 23/05/2002, 19h37
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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