Preg_replace : chercher un mot dans une chaine

WRInaute accro
Bonjour,

En PHP :
Code:
$modele = preg_replace('/Allroad/','',$modele);
ainsi que
Code:
$modele = preg_replace('/$Allroad^/','',$modele);
Ne fonctionne pas.

Je voudrais que preg_replace me trouve Allroad UNIQUEMENT si ce mot est le seul de la chaîne.
Ainsi :
Audi Allroad = false
Truc Allroad = false
Allroad tutu = false
Allroad = true

Auriez vous une idée de pourquoi et comment faire ?

Merci
 
WRInaute accro
1. Tu veux remplacer, ou tester?
2. Le plus simple pour un cas aussi restrictif c'est quand même de faire une comparaison directe (genre if ($modele == 'AllRoad') { $modele = ''; })
3. Si tu veux vraiment utiliser une regex, c'est "^" pour ancrer au début et "$" pour ancrer à la fin, pas l'inverse.

Jacques.
 
WRInaute accro
Merci. Je veux bien remplacer et j'ai besoin d'un regex car "Allroad" peut se retrouver dans des chaines mais ne doit pas y être remplacé.

Avec $modele = preg_replace('/^Allroad&/','',$modele); ça ne fonctionne pas non plus.
 
WRInaute accro
Pas compris. Dans les 4 exemples que tu donnais au début, tu veux obtenir quoi à la fin? Et tu veux obtenir quoi s'il n'y a pas Allroad?

Jacques.
 
WRInaute accro
Mon exemple est mal choisi.
Je veux que la chaine qui ne contient que Allroad soit transformée en A6 Allroad.
Audi Allroad = On ne fait rien
Truc Allroad = On ne fait rien
Allroad tutu = On ne fait rien
Allroad = A6 Allroad
 
WRInaute accro
Code:
if ($modele=='Allroad')
{
 $modele = 'A6 Allroad';
}

C'est pas plus simple comme ça?

Sinon
Code:
$modele=preg_replace('/^Allroad$/','A6 Allroad',$modele);
devrait faire l'affaire aussi.

Non?

Jacques.
 
Discussions similaires
Haut