[regex] remplacer sauf si dans un tag

Ellis Messages postés 2 Statut Membre -  
Ellis Messages postés 2 Statut Membre -
Bonjour,
Je ne maitrise pas bien les expressions régulières (rationnelles ?) et je me demandais si il était possible de faire la chose suivante (dans mon cas avec ereg_replace en php) :

Dans "chaine", remplacer "toto" par "titi" SAUF si toto se trouve à l'intérieur d'un tag, c'est à dire entre "<" et ">" (il peut y avoir d'autres choses, exemple, ne pas remplacer si on a "<http://toto.fr>" ou "<img src='toto.jpg'>.

Merci d'avance aux experts !
A voir également:

1 réponse

Ellis Messages postés 2 Statut Membre
 
Bon, après 2h de recherche sur Google, j'ai trouvé qqchose qui semble bien marcher, mais ne me demandez pas comment ça marche !

$var='toto';
$chaine=preg_replace('/(?!<.*?)(' . preg_quote($var, '/') . ')(?![^<>]*?>)/si', 'titi',$chaine);

(C'est un preg pas un ereg mais ça me va aussi !)
0