Bonjour,
Pour plusieurs raisons, dont certaines que j'ai déjà expliquées, par
exemple la syntaxe compliquée ([A-Za-z0-9]|-|_|\.)* au lieu d'écrire
tout simplement [A-Za-z0-9_.-]* mais aussi le fait que le « + » n'est
pas prévu, et donc mon adresse serait refusée si l'auteur de cette
expression n'avait pas oublié d'« ancrer » le test : « ^...$ ».
Tiens, une gauchère ! (^_^)
Post by PascalePost by Olivier MiakinenDéjà, en continuant à utiliser ereg au lieu de preg et sans changer la
syntaxe de ce qu'il accepte, c'est équivalent à l'écriture plus simple
C'est mieux d'utiliser preg ? Pourquoi ?...
Parce qu'elles sont plus puissantes, et en général plus rapides.
<http://fr2.php.net/manual/fr/function.ereg.php>
Note: preg_match(), qui utilise la syntaxe des expressions rationnelles
compatibles PERL, est une alternative plus rapide de ereg().
</>
Le test avant l'@ et après le . sont optionnels. S'il existe un é par
là, alors la chaîne reconnue commencera *après* le é.
Post by PascaleJ'avoue que je ne comprends pas du tout...
Pour moi, l'ereg de départ vérifie que l'on a : un ou plusieurs caractères
alpha-numériques (plus quelques autres autorisés),
Non pas « un ou plusieurs » mais « zéro, un ou plusieurs ». C'est le +
qui signifie « un ou plusieurs ».
Post by Pascalecaractères alpha-numériques (et quelques autres), un point et enfin un ou
plusieurs caractères alphanumériques.
Un é, ce n'est pas compris entre a et z, ni entre A et Z ni entre 0 et 9,
donc ???
Je prends quelques exemples, ce sera plus simple pour expliquer.
Regexp = x*@x*
chaîne testée ***@xxx : succès, résultat = ***@xxx
chaîne testée éé***@xéé : succès, résultat = ***@x
chaîne testée ééé@ééé : succès, résultat = @
chaîne testée ééééééé : échec
Regexp = ^x*@x*$
chaîne testée ***@xxx : succès, résultat = ***@xxx
chaîne testée éé***@xéé : échec
chaîne testée ééé@ééé : échec
chaîne testée ééééééé : échec
Post by PascalePost by Olivier MiakinenEn faisant un filtre qui contrôle *toute* la chaîne et pas seulement
une partie. Mais ceux de la FAQ sont quand même meilleurs.
compte dans le test que je fais ?
Il manquait les méta-caractères ^(ancre sur le début de la chaîne) et $
(ancre sur la fin de la chaîne).