[PHP] Problème de Regex

Résolu/Fermé
gerard - 14 oct. 2009 à 08:20
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 14 oct. 2009 à 16:21
Bonjour, je cherche une regex pour sortir un nombre d'une chaine de caractère comme celle ci :


blabla=12312?blabla

J'aimerais récuperer tout ce qui est entre les caractères = et ? soit 12312 .

J'ai beau chercher j'y arrive pas .

donc j'essaye de trouver la regex mais j'arrive a rien et me bloque complètement pour la suite de mon script.

$recap = preg_replace(' bein_je_sais_pas', '$1', 'blabla=12312?blabla' );



Voila si une personne pouvait me donner la réponse car vraiment j'ai essayé beaucoup de chose et je comprends rien :o, merci d'avance
A voir également:

6 réponses

J'avance un peu, voila ce que j'ai :

$message = preg_replace ('#\=(.+)\##' , '<STRONG>$1</STRONG>', $variable);


ca me met bien les nombres entre = et # mais le probleme c'est que ca retourne entièrement le message, ma regex doit pas tout a fait être exacte :/ j'ai vraiment du mal si une personne pouvait m'aider :)


merci
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
14 oct. 2009 à 15:59
tu peux toujours aller sur le site du zéro.

j'ai essayé et j'ai écris ceci :
$recup = preg_replace('#([a-zA-Z])([0-9]+)#i', '<strong>$2</strong>', 'blabla12312blabla');

mais bizarrement, $recup contient tout le texte, il y a juste les chiffres qui sont en gras.
Je ne comprend pas oO
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
14 oct. 2009 à 16:01
$recup = preg_replace('#([a-zA-Z]+)([0-9]+)([a-zA-Z]+)#i', '<strong>$2</strong>', 'blabla12312blabla');

voila, maintenant ça marche :D

adapte le code pour enlever les ? , = _ etc
0
Jean-François Pillou Messages postés 18879 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 274
14 oct. 2009 à 16:11
$message = preg_replace ('#=([^?]+)#' , '<STRONG>$1</STRONG>', $variable); 


La traduction est la suivante : tous les caractères consécutifs qui suivent le signe '=' et qui ne sont pas un point d'interrogation.
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
14 oct. 2009 à 16:21
On peut aussi rajouter i comme option après le 2ème #.
cela permettra de prendre en compte les majuscules.

ps : pas très professionnel de censurer ses fautes. 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Un gros merci a vous tous ! j'ai enfin regler mon probleme et en meme temps compris beaucoup plus de chose sur les regex .
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
14 oct. 2009 à 16:21
Pas de problème :D
C'est un plaisir comme toujours.
0