Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ereg (string pattern,string string,array regs)

3 réponses
Avatar
1ternaute
Bonjour,

http://www.manuelphp.com/php/function.ereg.php

Je butte sur les explications & l'exemple de la fonction par rapport a
la definition :

bool ereg ( string pattern , string string , array regs )

Definition : Recherche dans la chaîne string les séquences de
caractères qui correspondent au masque pattern .

Voici l'exemple donne :

ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)

J'imagine :

#- string pattern ==> "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"

On cherche les caracteres 0 a 9 dans 4 caracteres, puis il y a un tiret,
puis on cherche les caracteres 0 a 9 dans 2 caracteres, puis il y a un
tiret, puis on cherche les caracteres 0 a 9 dans 2 caracteres, si on
trouve ces caracteres 0 a 9 on les enregistrent dans une variable reg$.
C'est quoi la regle de construction ( parentheses, guillemets, crochets,
tirets), c'est tellement evident, qu'on en parle meme pas ?

#- , string string ==> , $date


#- , array regs ==> , $regs

je voudrais dans une chaine (varchar(4)) de 4 caracteres qu'il n'y ai
que les lettres de l'alphabet et les chiffres de 0 a 9.

Si je fais :

if (!ereg("[A-Za-z0-9)]{1,4})",$valeur)) { echo "Un caractere est errone";}

S'il y a un autre caractere que [A-Za-z0-9)] dans $valeur, le programe
ecrit "Un caractere est errone" ?

Quelqu'un peut il reprendre la definition d'ereg avec un exemple ?

3 réponses

Avatar
John GALLET
Bonjour,

Qustion très limite en rapport avec PHP, mais à défaut d'un forum dédié
regexp, allons-y.

http://www.manuelphp.com/php/function.ereg.php
Non. La doc, c'est sur http://fr2.php.net/manual/en/ (ou

http://fr2.php.net/manual/fr/ si tu préfères avoir des erreurs de
traduction).

Definition : Recherche dans la chaîne string les séquences de
caractères qui correspondent au masque pattern .


Personnellement, je préfère voir les regexps comme une recherche de
motif (au même sens que le motif d'une tapisserie par exemple). Mais
chacun son truc.

C'est quoi la regle de construction ( parentheses, guillemets, crochets,
tirets), c'est tellement evident, qu'on en parle meme pas ?


C'est surtout non lié à PHP. Les regexps ont été définies pour des
outils unix standard (awk, sed, perl etc...).

Quelqu'un peut il reprendre la definition d'ereg avec un exemple ?
Je te conseille la lecture de ressources générales sur les regexps,

comme par exemple (non exhaustif) les pointeurs donnés dans le
paragraphe 2.14 de la faq de ce forum http://faqfclphp.free.fr/

Personnellement, je considère les regexp comme l'outil le plus complexe,
le plus puissant et donc le plus pratique et le plus dangereux de tous
les utilitaires dôtés de langage propriétaire.

if (!ereg("[A-Za-z0-9)]{1,4})",$valeur))


J'ai l'impression qu'il y a des parenthèses qui traînent bizarrement...

HTH
JG

Avatar
1ternaute
Qustion très limite en rapport avec PHP, mais à défaut d'un forum dédié
regexp, allons-y.


Bonjour,

Je comprends encore plus pas ! ;o)

Ereg, c'est bien une fonction PHP ?
Sur le site que tu indique on a bien la description de la fonction ereg :

http://fr2.php.net/manual/fr/function.ereg.php

ereg (PHP 3, PHP 4, PHP 5)
ereg -- Expression rationnelle standard

Alors pourquoi, tu ecris que c'est pas en rapport avec PHP ? ? ?

Avatar
John GALLET
Ereg, c'est bien une fonction PHP ?
Oui. Mais mysql_query() aussi. Et si tu as une erreur de syntaxe SQL, ce

n'est pas un problème de PHP.

Alors pourquoi, tu ecris que c'est pas en rapport avec PHP ? ? ?
Pour faire une analogie grossière, tu peux faire un parallèle entre le

langage SQL par rapport à Oracle, Sybase, Postgresql, Informix,Ingres,
mysql etc... et les regexp par rapport à perl, awk, sed, java, php etc...

Tu ne fais pas de l'oracle ou du sybase, tu fais du sql. Là c'est
pareil, tu ne fais pas du PHP, tu fais des regexps et tu utilises la
fonction PHP correspondante. Mais ta regexp sera la même (modulo, comme
pour SQL, les variantes à la con) que tu l'utilises avec ereg() en PHP
ou avec java.util.regex ou en perl.

a++;
JG