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 23/01/2007, 17h01   #1
Membre à l'essai
 
Avatar de Dirty Harry
 
Inscription : novembre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 111
Points : 24
Points : 24
Par défaut Elaboration d'une regex en PHP

Bonjour,

Je veux créer un regex qui va chercher ce genre de caractère:

"Un mot 789"

on ne sais jamais quelle est le chiffre à la fin, mais on sais que ca commence toujours par "Un mot". L'espace entre les 2 peut être différent et ca peut être une tabulation

merci
Dirty Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h08   #2
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Salut,

Ceci t'aide ? :

\s représente un espace, une tabulation, etc
\d représente un chiffre. Si tu as un nombre indéfini de chiffre, il faut faire autrement..

A+
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h09   #3
Membre à l'essai
 
Avatar de Dirty Harry
 
Inscription : novembre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 111
Points : 24
Points : 24
et si j'ai plus d'un espace entre le mot et les chiffre, comment je peut interpreter plusieurs espaces ?
Dirty Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h12   #4
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Code :
<un>{\s}+<mot>{\s}+{\d}+
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h14   #5
Membre à l'essai
 
Damien Ravé
Inscription : septembre 2005
Messages : 20
Détails du profil
Informations personnelles :
Nom : Damien Ravé

Informations forums :
Inscription : septembre 2005
Messages : 20
Points : 21
Points : 21
\s* : l'opérateur * signifie "zéro ou plusieurs"

Donc si je ne m'abuse
<un>\s<mot>\s*\d\d\d

Perso, je me suis affiché la PHP Cheat sheet de ilovejackdaniels.com à côté du bureau. Il reprend toute la syntaxe des Regex et autres joyeusetés.

Bon courage
caphar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h17   #6
Membre à l'essai
 
Avatar de Dirty Harry
 
Inscription : novembre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 111
Points : 24
Points : 24
et c'est vraiment des <> qui entour les mot recherchés ?

voici l'erreur que j'ai

Warning: preg_match_all() [function.preg-match-all]: No ending delimiter '^' found in......
Dirty Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 17h18   #7
Membre à l'essai
 
Avatar de Dirty Harry
 
Inscription : novembre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 111
Points : 24
Points : 24
donc j'aurais ceci ?

$sep='^<mon>\s<mot>\s+[0-9]$';
Dirty Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 19h33   #8
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Non, les < et > font foirer ta regex puisqu'il ne sont pas contenu dans ta chaine, et les options de début et fin de chaine également, puisque tu utilises un preg_match_all.

Code php :
preg_match_all('#mon mot\s+\d+#', $chaine, $match);
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h34.


 
 
 
 
Partenaires

Hébergement Web