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 07/09/2006, 14h21   #1
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
Par défaut Pb de syntaxe d'expression régulière

Bonjour à tous,

Je parse 1 page et je voudrais remplacer une portion de la forme :
"début de la chaine connue / variable en plein milieu non connue /fin de chaine connue".
Je veux donc récupérer cette portion dont on ne connait que le début et la fin dans 1 variable
avec les expressions régulières, il doit y avoir moyen de faire du genre :

Code :
1
2
3
 
$var="debutconnu ****** finconnue";
preg_match("^debutconnu - finconnue$",$var, $matches);
et le but étant de faire :

Code :
1
2
 
str_replace(preg_match("^debutconnu - finconnue$",$var, $matches),"machainederemplacement", $subject)
Mes connaissances en expression régulières s'arrêtant là (il faudrait quand même que je m'y mette sérieusement un jour ), suis-je sur la bonne voie, quelle syntaxe utiliser dans la chaine d'expression régulière ?

Merci
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 15h17   #2
Invité régulier
 
Inscription : février 2006
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 35
Points : 9
Points : 9
Par défaut mmm

Je maîtrise pas non plus des masses les expressions régulières, mais il me semble que t'as une fonction ereg_replace() qui remplace le motif repéré grâce au modèle par la chaîne de ton choix.

(y'a aussi eregi_replace() il me semble, non sensible à la casse)
Ithomir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 15h23   #3
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Il existe aussi preg_replace ...

Il y a 2-3 tuto sur developpez.com sur les expression regulière
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 15h28   #4
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
yep : http://g-rossolini.developpez.com/tu...ns-regulieres/

tu est sur la bonne voie, mais utilise directement preg_replace c'est mieux
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 15h32   #5
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
Merci pour vos réponses,
c'est vrai que je peux faire directement preg_replace ou ereg_replace au lieu de passer par str_replace.
Mon pb final est aussi le formatage de l'exp. régulière pour récupérer la chaine qui répond à ce critère:
("^debutconnu -ici on ne sait pas...- finconnue$"
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 20h52   #6
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
Bon, je crois que j'ai trouvé l'exp.régulière:
Code :
1
2
 
$pattern="#debutconnu(.*)finconnue#s";
Merci pour votre aide
renaudjuif 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 16h31.


 
 
 
 
Partenaires

Hébergement Web