Expressions régulières

dlimouzin Messages postés 11 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 30 décembre 2008 - 22 oct. 2006 à 11:44
spidermario Messages postés 121 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 14 mars 2009 - 28 oct. 2006 à 09:00
J'ai le code ci-dessous dont l'objectif est de mettre en lien le mot "beau" quelque soit son écriture et sa position dans la phrase mais sans sélectionner les mots contenant la chaine "beau" comme beauté.
Ceci n'est pas fonctionnel si quelqu'un pouvait m'aider à voir l'erreur

Merci
<?php

$texte="BeAu remplacer beau par autre chose Beau aussi mais pas beauté";

$replace="beau";

echo "$texte
";

preg_match_all("#\b$replace\b#i",$texte,$allmatches);

for($i=0;$i<sizeof($allmatches[0]);$i++){

$texte = ereg_replace($allmatches[0][$i],"".$allmatches[0][$i]."",$texte);

}

echo "$texte
";

?>

2 réponses

cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
22 oct. 2006 à 18:42
Salut !

$Texte = preg_replace('`([^a-zA-Z0-9]|[ ])?(beau)([^a-zA-Z0-9]|[ ])`i',, '\\2', $Texte);

Pas sur de ma regex mais faudrait teste... dit moi si sa fonctionne ^^

@+
spidermario Messages postés 121 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 14 mars 2009 1
28 oct. 2006 à 09:00
Ou encore
$texte=preg_replace('#(beau){1}\s*#i','\\1\\2',$texte);

Je débute en expressions régulières donc je ne suis pas du tout sûr que ça marche...
Rejoignez-nous