Bonjour à tous
je voulais savoir
[:alpha:]
[:alnum:]
...
s'utilise avec quelles fonctions
Version imprimable
Bonjour à tous
je voulais savoir
[:alpha:]
[:alnum:]
...
s'utilise avec quelles fonctions
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).
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
- 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.
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
Il vous manque les délimiteurs de début/fin de motif (puisqu'il vous prend vos premier/dernier crochets pour remplir cette fonction) :
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é).Code:preg_match('~[[:alpha:]]~',$val);
Pour approfondir le sujet : Initiation aux expressions régulières en PHP.
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
Signifie une chaîne d'une seule "lettre".Citation:
Envoyé par mosto
Pour une chaîne composée uniquement de lettres à raison d'au moins une, ce serait :
^[[:alpha:]]+$
Les possibilités son multiples :aie:
:aie:
Oui mais justement si je veux tester une chaine du type
aaaa1111aaaaa
il faut faire comment
Et plus précisément ?Citation:
Envoyé par mosto
^[[: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:]])