expression reguliere et suppression de pluriel
Posté : 26 avr. 2010, 17:02
j'ai une petite question
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 :
assureurs assurances services courtiers démarcheurs démarcheuses
assureur assurance services courtier démarcheurs démarcheuse
Alors que son analogue Javascript fonctionne :
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.
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.