Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2004, 13h10   #1
Membre à l'essai
 
Inscription : septembre 2004
Messages : 89
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 89
Points : 22
Points : 22
Par défaut supprimer les chaine à trois caracteres d'une phrase

salut à tous
si qu'un peut me dire comment extraire les mot à 3 lettres d'une phrase
mérçi
abj8077 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2004, 13h23   #2
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
function extract3chars($phrase=''){
 $result='';
 if(empty($phrase)) return $result;
 $mots=explode(" ",$phrase);
 for($x=0;$x<count($mots);$x++)
  if(strlen($mots[$x])!=3) $result.=$mots[$x].' ';
 return $result;
}
 
// exemple:
echo(extract3chars('salut, ici ya trois lettres : 123 !'));
?>
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2004, 13h28   #3
Membre à l'essai
 
Inscription : septembre 2004
Messages : 89
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 89
Points : 22
Points : 22
Par défaut ok

je te remérçi Sub0
abj8077 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2004, 14h48   #4
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Par défaut [Regex]extraction de mots

Juste une petite remarque pour mettre en évidence, dans ce genre de problème, l'effet de l'orthographe française (en anglais, c'est pas mieux)

Si on veut trouver les mots de 3 caractères de la phrase "Plus bas, plus à l'est qu'aux six antipodes du mot." (ça veut rien dire, je sais. Juste un exemple ), il faut tenir compte des contractions comme l' pour 'le' ou qu' pour 'que'. La ponctuation pose également problème.

Si on prend le seul espace comme caractère de découpe, on n'extrait que le mot six de la phrase ci-dessus.

Les regex (pcre) offrent un éventail de solutions. Une en passant :
Code :
1
2
3
4
$txt="Plus bas, plus à l'est qu'aux six antipodes du mot.";
 
preg_match_all('/\b\w{3}\b/',$txt,$sortie);
print_r($sortie);
Retournera bien
Citation:
Array ( [0] => Array ( [0] => bas [1] => est [2] => aux [3] => six [4] => mot ) )
Mais la solution postée plus haut sera probablement moins gourmande en ressources pour de très gros fichiers. Les regex sont magiques mais il y a un prix à payer.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h30.


 
 
 
 
Partenaires

Hébergement Web