Rechercher : dans
Par :

Supprimer des mots en expression regulières

Dernière réponse le 27 jan 2009 à 16:43:51 nikizim, le 27 jan 2009 à 15:16:15 
 Signaler ce message aux modérateurs

Bonjour,

je souhaiterais supprimer tous les mots suivant d'une chaine de caractère : le, la, les, de, des, ...

J'ai donc créé le code suivant :

$words = array ('de', 'du', 'des', 'le', 'la', 'les', 'il', 'elle', 'on', 'l\'', 'et');
	
echo $string_str = preg_replace( '#('.implode('|', $words).')#i', '', $string);


le souci c'est que ça marche et trop bien :). Car si j'ai la chaine de caractère suivante :

"Ma chaine de caractère est compris en deux mots et treize mots. Et je veux fait un meilleur code."

Et voila tout ce qui disparait :

"Ma chaine de caractère est compris en deux mots et treize mots. Et je veux faire un meilleur code."

Quelqu'un serait-il comment faire pour éviter de supprimer les mots dans d'autres mot comme meilleur => meur?

merci infiniment d'avance.
Configuration: Windows Vista
Firefox 3.0.4

Meilleures réponses pour « Supprimer des mots en expression regulières » dans :
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
Sed - Trucs et astuces VoirSubstitution Affichage Suppression Espace et tabulation Ligne vide Intervalle régulier Divers Joindre des lignes Affichage insensible à la casse Substitution Substituer "foo" par "bar" à chaque ligne Seulement la 1ère...
[VBA] Supprimer un mot dans une plage de cellule VoirSi on veut supprimer un mot dans une phrase il suffit de faire une petite macro qui supprime le mot recherché. Là où ça se corse c'est que le mot recherché pourrait être, par exemple "LEMOT" ou "LeMot" ou "lemot" ou encore "LeMot" etc.. Cette...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...

1

Smoking bird, le 27 jan 2009 à 15:26:37

$pattern='#\s(le|la|les|du|il)\s#i';

\s correspond à des espaces, tu t'assures donc que ce sont des mots seuls et pas des bouts de mots^^
tu peux utiliser \b aussi, ou

$pattern='#\s[\w]{2}\s#i';

qui récupère tous les mots de 2 lettres (pattern à compléter par tes soins pour récupérer 'elles' et autres ;))

Répondre à Smoking bird

2

nikizim, le 27 jan 2009 à 16:39:24

Merci beaucoup ça marche plutôt bien mise à part que si le premier mot est un 'le' ça ne marche pas mais je me débrouillerai.

encore merci.

Répondre à nikizim

3

 Smoking bird, le 27 jan 2009 à 16:43:51

#(\s|\b)[\w]{2}\s#i

ce pattern là devrait rectifier le tir^^

use et abuse de cet outil pour apprendre les regexp, c'est vraiment parfait^^

http://www.lumadis.be/regex/test_regex.php

Répondre à Smoking bird