Forum Clubic

Ajout d'un prefixe dans des "ou" d'une expression régulière

Bonjour,
Je vais essayer d’être clair :
Je souhaite ajouter un préfix au texte correspondant au texte dont l’option est vraie dans une expression régulière…
Oulà… il pète les plombs le gars!
Un chti exemple :
j’ai (aa|bb|cc) et je veux mettre “->” devant l’option qui est vraie.
Ce qui donnerait si et seulement si (tiens ça me rappelle kekchose) c’est bb : ->bb
Sachant que le texte prut contenir du aa, du bb ou du cc
Merci


$maChaine = 'aafzefmzbb';
$regexp = '/(aa|bb|cc)/';
$maChaine = preg_replace( $regexp, "$1->", $maChaine );
echo $maChaine; // aa->fzefmzbb->

Edité le 19/02/2009 à 00:50

Ouais, je n’ai pas été très clair lol
Voilà un exemple :

$texte=“blablabla aa blabla blabla bb blablablabla blablabla cc blablabla”;
$texte=preg_replace("/((aa|bb|cc).*/","$1",$texte);

Selon que ce soit au moment de l’execution du preg, un aa, bb ou cc
le “->” doit se mettre devant.

Je peux faire 3 preg, mais est-ce possible de le faire en un seul?

Mais, pas de soucis je viens de régler le problème avec un preg_replace_callback ^^
Merci quand même pour ta réponse :slight_smile:

Bah, explique ce que tu veux en donnant avec ton exemple le resultats attendu.
Avec ce que tu as réexpliqué je verais un truc comme ca alors :


$maChaine = 'sdmfjsdmfaamjhmh';
if( preg_match( '/(aa|bb[cc)/', $maChaine ) ) {
  $maChaine = '->'.$maChaine;
}
echo $maChaine; // ->sdmfjsdmfaamjhmh

?