Supprimer des mots en expression regulières
nikizim
Messages postés
76
Statut
Membre
-
Smoking bird Messages postés 911 Statut Membre -
Smoking bird Messages postés 911 Statut Membre -
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 :
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.
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.
A voir également:
- Supprimer des mots en expression regulières
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
- Supprimer mot de passe windows 10 - Guide
2 réponses
$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 ;))
\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 ;))
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.
encore merci.
#(\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^^
https://lumadis.be/regex/test_regex.php
ce pattern là devrait rectifier le tir^^
use et abuse de cet outil pour apprendre les regexp, c'est vraiment parfait^^
https://lumadis.be/regex/test_regex.php