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.
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
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.
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.
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.
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.
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.