Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2006, 15h30   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 34
Points : 13
Points : 13
Par défaut Expressions régulières utilisation de "ereg"

Bonjour, ca fait un bon moment que je me casse la tete dessus et j'aimerai savoir si il y a une expression qui permet de tester le nombre de fois qu'apparait un caractere dans une chaine.

Attention, le problème c'est que les caractère qui se repetent peuvent ne pas se suivre.

Exemple, ma chaine de caractère est "AABAABD"

J'aimerai pouvoir effectuer le test : La chaine comprends au minimu 2 "B".

Merci pour vos réponses.

En attendant, je continu à chercher.
jojo33bx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h20   #2
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
salut jojo33bx,

tu as une solution en faisant comme ça:
Code :
1
2
3
4
5
6
7
8
9
10
<?php
if ( (preg_match("#B(.+)B#", "AABAABD")) or (preg_match("#BB#", "AABAABD")) )
{
echo ' C VRAI';
}
else
{
echo ' C FAUX';
}
?>
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h21   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 34
Points : 13
Points : 13
Merci tigunn, j'essaye de comprendre ca, et après je l'essaye...

Edit : 16h24

C'est quoi la difference entre preg_match et ereg ?
jojo33bx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h36   #4
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
alors:
ereg
et preg_match

c'est une solution un peu bidouille mais qui marche.
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h38   #5
Membre confirmé
 
Homme Emmanuel Thierry
Ingénieur systèmes et réseaux
Inscription : décembre 2003
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Thierry
Âge : 24
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : décembre 2003
Messages : 216
Points : 219
Points : 219
Citation:
Envoyé par tigunn
Code :
(preg_match("#B(.+)B#", "AABAABD")) or (preg_match("#BB#", "AABAABD")) )
ou plutot :
Code :
preg_match("#B(.*)B#U", "AABAABD")
Sékiltoyai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h43   #6
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 34
Points : 13
Points : 13
Vous voulez bien m'expliquer un tit peu SVP
l'expression régulière # je l'ai pas encore vu, c'est quoi?
et le U aussi?
jojo33bx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h51   #7
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
T'expliquer les regex ça risque de prendre du temps. Par contre, regarde de ce côté:
http://be2.php.net/manual/fr/function.count-chars.php
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 16h55   #8
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
une nouvelle solution plus simple en regex:
Code :
1
2
3
4
5
6
7
8
9
10
 
preg_match_all("#B#", "BAADBB", $out);
if (count($out[0])>=2)
{
	echo 'vrai';
}
else
{
	echo 'faux';
}
mais j'espère que tu sais: les regex sont généralement plus gourmande en temps de traitement qu'une fonction php comme char_count().
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 18h03   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 34
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 34
Points : 13
Points : 13
Merci beaucoup à vous 3, j'ai fait un mélange et ca à donné ca:

Code :
 if ( ereg('B.*B.*B',$test) )
pour tester si il y a 3 "B".

Encore merci. @+
jojo33bx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 20h44   #10
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852


Code :
1
2
$test='ABBBBBZZBBBBAABAAB';
if ( ereg('B.*B.*B',$test) ) echo 'Trois B? Vraiment?';
Laisse tomber les regex pour ceci.

http://be2.php.net/manual/fr/function.count-chars.php
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2006, 21h46   #11
Membre confirmé
 
Homme Emmanuel Thierry
Ingénieur systèmes et réseaux
Inscription : décembre 2003
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Thierry
Âge : 24
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : décembre 2003
Messages : 216
Points : 219
Points : 219
Oui, en effet, préfère char_count() pour faire ceci, ce sera bien plus rapide.
Sékiltoyai est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h19.


 
 
 
 
Partenaires

Hébergement Web