OVH Cloud OVH Cloud

ereg, classe alpha, accents

4 réponses
Avatar
Christophe Leitienne
Bonjour à tous,

Il semble qu'avec la fonction ereg, la classe [:alpha:] ne prenne pas en
compte les caractères accentués, ceci même après un setlocale(LC_ALL,
'fr_FR').
Pour résumer, ereg('^[[:alpha:]]+$', 'éàâ') retourne false.

Quelqu'un peut-il confirmer ceci, ou ai-je un problème dans ma
configuration ?

En revanche, j'ai remarqué que preg_match('/^\\w+$/', 'éàâ') fonctionne
bien, mais je préfère utiliser les regex POSIX.

Merci,

Christophe.

4 réponses

Avatar
loufoque
Christophe Leitienne a dit le 28/09/2005 à 14:36:

mais je préfère utiliser les regex POSIX.


Quel manque de goût ! ;)
Personnellement j'utilise toujours les PCRE en mode utf-8.

Avatar
Steuf
Christophe Leitienne a dit le 28/09/2005 à 14:36:

mais je préfère utiliser les regex POSIX.



Quel manque de goût ! ;)
Personnellement j'utilise toujours les PCRE en mode utf-8.


D'ailleurs il me semble que les PCRE sont plus rapides au traitement que
les POSIX...

--
Site dédié au développement WEB : http://www.exinsidephp.com


Avatar
ftc
Bonjour à tous,

Il semble qu'avec la fonction ereg, la classe [:alpha:] ne prenne pas en
compte les caractères accentués, ceci même après un setlocale(LC_ALL,
'fr_FR').
Pour résumer, ereg('^[[:alpha:]]+$', 'éàâ') retourne false.

Quelqu'un peut-il confirmer ceci, ou ai-je un problème dans ma
configuration ?


je confirme, ça ne fonctionne pas avec les expression régulières de type
POSIX.

En revanche, j'ai remarqué que preg_match('/^w+$/', 'éàâ') fonctionne
bien, mais je préfère utiliser les regex POSIX.


Et oui, ça fonctionne avec les regexp Perl. Vu le peu de différence de
syntaxe et la plus grande rapidité des regexp Perl, je ne vois aucune
raison de s'en passer.

Avatar
loufoque
ftc a dit le 29/09/2005 à 09:54:

Vu le peu de différence de
syntaxe et la plus grande rapidité des regexp Perl, je ne vois aucune
raison de s'en passer.


D'autant plus que les PCREs permettent plus de choses, comme les lookaround.