J'essaye de faire une regexp très simple qui permet de formatter
proprement un numéro de télephone, c'est à dire:
mon téléphone est stocké sous forme de chaine, par exemple "0123456789"
Pour l'affichage, je veux mettre "01.23.45.67.89"
Voila ce que je fait:
function tel_sql_php($sql_tel) {
$pattern = "([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})";
if (eregi($pattern, $sql_tel, $myregs)) {
$php_tel =
$myregs[1].".".$myregs[2].".".$myregs[3].".".$myregs[4].".".$myregs[5];
return $php_tel;
}
}
Ceci fonctionne, mais sitot que j'utilise des caractères plus propres,
c'est à dire que j'utilise:
$pattern = "(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})";
ça ne marche plus, le eregi ne match pas.
Quelqu'un peut il me dire ce que je rate?
Merci bien
--
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net
Tout sur les eggdrops: http://www.c-p-f.org
Pas d'accord : - La solution peut être facilement modifiée pour permettre des choses plus complexes. Par exemple $pattern = "([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})" permet de gérer des numéros de tel formattés avec des espaces, des tirets ou des points entre les groupements de deux nombres. Ca devient vite un cauchemard avec des substring et des strpos.
Si tu veux gérer les numéros sous la forme +(33)12345678 tu commences tes substrings à l'indice du ) et non à l'indice zéro.
Ou tu rajoutes (+([0-9]{1,2}))? au début du pattern... ce qui a l'avantage de ne pas interpréter comme numero de téléphone n'importe quoi qui contient une parenthèse fermante et une suite de nombres.
__________________________________________________________ Bonjour, j'essaie ceci : $pattern "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})"; dans la formule mais je ne trouve pas la bonne syntaxe.
La lecture du http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php manque de quelques exemples d'illustrations Quelqu'un aurait-il une adresse du genre "PCRE pour les nuls" merci IB
Pas d'accord :
- La solution peut être facilement modifiée pour permettre des choses plus
complexes. Par exemple
$pattern = "([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})"
permet de gérer des numéros de tel formattés avec des espaces, des tirets
ou des points entre les groupements de deux nombres. Ca devient vite un
cauchemard avec des substring et des strpos.
Si tu veux gérer les numéros sous la forme +(33)12345678 tu commences tes
substrings à l'indice du ) et non à l'indice zéro.
Ou tu rajoutes (+([0-9]{1,2}))? au début du pattern... ce qui a
l'avantage de ne pas interpréter comme numero de téléphone n'importe quoi
qui contient une parenthèse fermante et une suite de nombres.
__________________________________________________________
Bonjour,
j'essaie ceci : $pattern "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})";
dans la formule mais je ne trouve pas la bonne syntaxe.
La lecture du http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php
manque de quelques exemples d'illustrations
Quelqu'un aurait-il une adresse du genre "PCRE pour les nuls"
merci
IB
Pas d'accord : - La solution peut être facilement modifiée pour permettre des choses plus complexes. Par exemple $pattern = "([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})" permet de gérer des numéros de tel formattés avec des espaces, des tirets ou des points entre les groupements de deux nombres. Ca devient vite un cauchemard avec des substring et des strpos.
Si tu veux gérer les numéros sous la forme +(33)12345678 tu commences tes substrings à l'indice du ) et non à l'indice zéro.
Ou tu rajoutes (+([0-9]{1,2}))? au début du pattern... ce qui a l'avantage de ne pas interpréter comme numero de téléphone n'importe quoi qui contient une parenthèse fermante et une suite de nombres.
__________________________________________________________ Bonjour, j'essaie ceci : $pattern "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})"; dans la formule mais je ne trouve pas la bonne syntaxe.
La lecture du http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php manque de quelques exemples d'illustrations Quelqu'un aurait-il une adresse du genre "PCRE pour les nuls" merci IB
Vincent Lascaux
j'essaie ceci : $pattern > "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})"; dans la formule mais je ne trouve pas la bonne syntaxe.
Je pense qu'il faut précéder + d'un ... d{1,2,3} n'est pas syntaxiquement correct : c'est d{1,3} pour dire entre 1 et 3 nombres Je pense qu'il faut doubler les dans les expressions rationnelles dans les [ ] En php, '' vaut (il faut aussi doubler les ). Donc si tu veux parler d'un antislash en expression régulière, il faut en mettre 4 (me trompè je ?)
j'essaie ceci : $pattern > "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})";
dans la formule mais je ne trouve pas la bonne syntaxe.
Je pense qu'il faut précéder + d'un ...
d{1,2,3} n'est pas syntaxiquement correct : c'est d{1,3} pour dire entre 1
et 3 nombres
Je pense qu'il faut doubler les dans les expressions rationnelles dans les
[ ]
En php, '\' vaut (il faut aussi doubler les ). Donc si tu veux parler
d'un antislash en expression régulière, il faut en mettre 4 (me trompè je ?)
j'essaie ceci : $pattern > "(+(d{1,2,3}))[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})[ -.]*([0-9]{2})"; dans la formule mais je ne trouve pas la bonne syntaxe.
Je pense qu'il faut précéder + d'un ... d{1,2,3} n'est pas syntaxiquement correct : c'est d{1,3} pour dire entre 1 et 3 nombres Je pense qu'il faut doubler les dans les expressions rationnelles dans les [ ] En php, '' vaut (il faut aussi doubler les ). Donc si tu veux parler d'un antislash en expression régulière, il faut en mettre 4 (me trompè je ?)
Un grand merci pour ton aide. J'ai fait "bêtement" un copier/coller et j'ai : Warning: Unknown modifier '[' in c:blablablatmp15ons9wv2t.php on line 11 ce qui est déjà le message d'erreur que j'obtenais précédemment. Si en plus, tu connais une adresse où je puis me former à l'apprentissage du $pattern .... ? ca me serait utile merci IB
"Vincent Lascaux" <nospam@nospam.org> a écrit dans le message de news:
41dc6798$0$31524$626a14ce@news.free.fr...
Un grand merci pour ton aide.
J'ai fait "bêtement" un copier/coller et j'ai :
Warning: Unknown modifier '[' in c:blablablatmp15ons9wv2t.php on line
11
ce qui est déjà le message d'erreur que j'obtenais précédemment.
Si en plus, tu connais une adresse où je puis me former à l'apprentissage du
$pattern .... ? ca me serait utile
merci
IB
Un grand merci pour ton aide. J'ai fait "bêtement" un copier/coller et j'ai : Warning: Unknown modifier '[' in c:blablablatmp15ons9wv2t.php on line 11 ce qui est déjà le message d'erreur que j'obtenais précédemment. Si en plus, tu connais une adresse où je puis me former à l'apprentissage du $pattern .... ? ca me serait utile merci IB
Très bien. Peut-on en déduire que le $pattern n'a pas la même syntaxe pour ereg() que pour preg_match_* par exemple, je fais un petit test comme cela :
Très bien. Peut-on en déduire que le $pattern n'a pas la même syntaxe pour
ereg() que pour preg_match_*
par exemple, je fais un petit test comme cela :
Très bien. Peut-on en déduire que le $pattern n'a pas la même syntaxe pour ereg() que pour preg_match_* par exemple, je fais un petit test comme cela :
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Où puis-je trouver un bouquin ou autre pour apprendre les bases ?
<http://fr.php.net/manual/fr/>
Je parlais des bases de ereg() et preg_*(). Explications sur PCRE et autre ... de façon à comprendre les syntaxes du pattern et connaitre la différence entre ereg() et preg_match_*
cordialement et avec mes remerciements pour votre aide IB
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
crmg02$1hvp$1@cabale.usenet-fr.net...
Peut-on en déduire que le $pattern n'a pas la même syntaxe pour
ereg() que pour preg_match_*
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop
appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Où puis-je trouver un bouquin ou autre pour apprendre les bases ?
<http://fr.php.net/manual/fr/>
Je parlais des bases de ereg() et preg_*(). Explications sur PCRE et autre
... de façon à comprendre les syntaxes du pattern et connaitre la différence
entre ereg() et preg_match_*
cordialement et avec mes remerciements pour votre aide
IB
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Où puis-je trouver un bouquin ou autre pour apprendre les bases ?
<http://fr.php.net/manual/fr/>
Je parlais des bases de ereg() et preg_*(). Explications sur PCRE et autre ... de façon à comprendre les syntaxes du pattern et connaitre la différence entre ereg() et preg_match_*
cordialement et avec mes remerciements pour votre aide IB
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Ah, je ne pouvais pas deviner ce que tu avais déjà lu.
Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci : <http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php> <http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et donnant les différences entre les deux, mais d'après ce que j'ai compris il vaut mieux oublier les ereg complètement car les preg sont beaucoup plus performantes (et plus puissantes).
Par ailleurs, j'ai bien reçu ta réponse par courrier. J'ai supposé que c'était une erreur et j'ai préféré répondre ici puisque d'autres peuvent être intéressés par ces liens.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop
appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Ah, je ne pouvais pas deviner ce que tu avais déjà lu.
Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci :
<http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php>
<http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et
donnant les différences entre les deux, mais d'après ce que j'ai compris
il vaut mieux oublier les ereg complètement car les preg sont beaucoup
plus performantes (et plus puissantes).
Par ailleurs, j'ai bien reçu ta réponse par courrier. J'ai supposé
que c'était une erreur et j'ai préféré répondre ici puisque d'autres
peuvent être intéressés par ces liens.
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
merci mais j'avais déjà consulté ces adresses. Ces pages sont déjà trop appronfondies pour que je comprenne la différence entre ereg() et preg_*()
Ah, je ne pouvais pas deviner ce que tu avais déjà lu.
Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci : <http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php> <http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et donnant les différences entre les deux, mais d'après ce que j'ai compris il vaut mieux oublier les ereg complètement car les preg sont beaucoup plus performantes (et plus puissantes).
Par ailleurs, j'ai bien reçu ta réponse par courrier. J'ai supposé que c'était une erreur et j'ai préféré répondre ici puisque d'autres peuvent être intéressés par ces liens.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
AAA
"Olivier Miakinen" <om+ a écrit dans le message de news: cs8ahd$1dst$
... Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci : <http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php> <http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et donnant les différences entre les deux, mais d'après ce que j'ai compris il vaut mieux oublier les ereg complètement car les preg sont beaucoup plus performantes (et plus puissantes).
merci d'avoir répondu si rapidement. Avec les adresses que tu as fournies, j'ai trouvé celle ci : http://www.perldoc.com/perl5.8.0/pod/perlre.html qui répond assez à ma recherche S'il y avait des exemples quelque part, ca aiderait à la compréhension ! et mes excuses pour le message en direct = une erreur de manip !
cordialement IB
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
cs8ahd$1dst$1@cabale.usenet-fr.net...
...
Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci :
<http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php>
<http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et
donnant les différences entre les deux, mais d'après ce que j'ai compris
il vaut mieux oublier les ereg complètement car les preg sont beaucoup
plus performantes (et plus puissantes).
merci d'avoir répondu si rapidement.
Avec les adresses que tu as fournies, j'ai trouvé celle ci :
http://www.perldoc.com/perl5.8.0/pod/perlre.html
qui répond assez à ma recherche
S'il y avait des exemples quelque part, ca aiderait à la compréhension !
et mes excuses pour le message en direct = une erreur de manip !
"Olivier Miakinen" <om+ a écrit dans le message de news: cs8ahd$1dst$
... Pour aller un peu plus loin dans la syntaxe des preg, il y a ceci : <http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php> <http://www.pcre.org/>
Je ne connais pas de doc « différentielle » comparant ereg et preg et donnant les différences entre les deux, mais d'après ce que j'ai compris il vaut mieux oublier les ereg complètement car les preg sont beaucoup plus performantes (et plus puissantes).
merci d'avoir répondu si rapidement. Avec les adresses que tu as fournies, j'ai trouvé celle ci : http://www.perldoc.com/perl5.8.0/pod/perlre.html qui répond assez à ma recherche S'il y avait des exemples quelque part, ca aiderait à la compréhension ! et mes excuses pour le message en direct = une erreur de manip !