Et je sais que les pros du PHP et des exp reg vont pouvoir me donner une réponse :
Le but :
supprimer les "s" en fin de mots dans des chaines composées de caractères alphabetiques minuscules et d'espace
Voici mon code :
$mots_cles="assureurs assurances services courtiers démarcheurs démarcheuses";
echo $mots_cles."<br>";
//exp reg retirant les lettres s en fin de mots de plus de 4 lettre (suppressions des pluriels)
//mot de fin (ou un seul mots)
$mots_cles=preg_replace("/([a-z]{4,30})s$/","$1",$mots_cles);
//mot du debut
$mots_cles=preg_replace("/^([a-z]{4,30})s([ ]{1})/","$1$2",$mots_cles);
//mots du milieu
$mots_cles=preg_replace("/([ ]{1})([a-z]{4,30})s([ ]{1})/","$1$2$3",$mots_cles);
echo $mots_cles;
Ce qui donneassureurs assurances services courtiers démarcheurs démarcheuses
assureur assurance services courtier démarcheurs démarcheuse
Alors que son analogue Javascript fonctionne :
Code : Tout sélectionner
var mots_cles="assureurs assurances services courtiers démarcheurs démarcheuses";
document.write(mots_cles+"<br>");
//exp reg retirant les lettres s en fin de mots de plus de 4 lettre (suppressions des pluriels)
//mot de fin (ou un seul mots)
mots_cles=mots_cles.replace(/([a-z]{4,30})s/g,"$1",mots_cles);
//mot du debut
mots_cles=mots_cles.replace(/^([a-z]{4,30})s([ ]{1})/g,"$1$2",mots_cles);
//mot du milieu
mots_cles=mots_cles.replace(/([ ]{1})([a-z]{4,30})s([ ]{1})/g,"$1$2$3",mots_cles);
//mots_cles = transforme_mots_cles_pour_recherche_annonce(mots_cles);
document.write(mots_cles+"<br>");assureurs assurances services courtiers démarcheurs démarcheuses
assureur assurance service courtier démarcheur démarcheuse
Si vous voyez le problème, votre aide est la bien venue.