Pour connaisseurs en expressions regulières (regex)

WRInaute accro
J'ai pompé quelque part un truc sans le comprendre vraiment et du coup je seche un peu pour l'adapter ...

Code:
$content="Accueil Création";
$tab_mots= split("[^[:alpha:]']+", $content);

il considère le é comme un separateur et donc je me retrouve avec trois mots :

Accueil
Cr
ation

:oops:

Que faut il changer dans l expression reg ? Merci par avance
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

Commence par utiliser preg_split (qui est basé sur PCRE) plutôt que split (il te faudra ajouter des délimiteurs autour de la regex). Si ça ne suffit pas, quel est l'encodage de ton texte? ISO, UTF-8...?

Jacques.
 
WRInaute passionné
Re: Pour connaisseurs en expression regulières

tu veux faire quoi au juste ? spliter sur les espace ?

si c'est le cas utilise ca



Code:
$tab_mots= split("[\s]", $content);
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

jcaron a dit:
Commence par utiliser preg_split (qui est basé sur PCRE) plutôt que split (il te faudra ajouter des délimiteurs autour de la regex). Si ça ne suffit pas, quel est l'encodage de ton texte? ISO, UTF-8...?

Jacques.

je suis en charset=iso-8859-1"

Voila un texte "type" :

" Ceci est, c'est pas original, un texte type (avec des parenthèses, des chiffres 12345 et autres joyeuseutés) ! "

Je veux splitter tout ce qui n'est pas une lettre ou un chiffre et donc recupérer dans le tableau :

Ceci
est
c
est
pas
original
un
texte
type
avec
des
parenthèses
des
chiffres
12345
et
autres
joyeuseutés

edit : je viens effectivement d'aller voir preg-split

$keywords = preg_split("/[\s,]+/", "langage hypertexte, programmation");

je dois donc ajouter toute sles ponctuations dans la chaine :) - = ! ? etc etc) ?
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

aladdin a dit:
tu veux faire quoi au juste ? spliter sur les espace ?

si c'est le cas utilise ca



Code:
$tab_mots= split("[\s]", $content);
je viens de tester, ca marche deja mieux (je perds plus les é ... mais par contre je garde trop de trucs (! - . bref toutes les ponctuation et separateurs divers).
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

Ca donne quoi preg_split("/\W+/",$chaine)?

Jacques.
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

jcaron a dit:
Ca donne quoi preg_split("/\W+/",$chaine)?

Jacques.
ca donne bien : plus aucun separateur .... mais plus de é non plus ...

actualit

perdu le é
 
WRInaute passionné
Re: Pour connaisseurs en expression regulières

fallait expliquer ;)

il te suffit d'ajouter
Code:
setlocale(LC_CTYPE, 'fr_FR.ISO-8859-1');

au tout début de ton script, et ensuite d'utiliser le code que tu as posté au début. pour matcher les numéros en plus des caractères tu peux utiliser :alnum: au lieu de :alpha:
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

C'est bizarre, je viens d'essayer et ça marche comme il faut. Tu as quoi dans $_ENV['LANG']?

Jacques.

(grilled)
 
WRInaute passionné
Re: Pour connaisseurs en expression regulières

Voici ce que tu cherches je pense :

Code:
$value = preg_split('#([[\s\[\]\\\@.…,(){}><!?/\']+)#Us', $value, -1, PREG_SPLIT_NO_EMPTY); // Récupération des mots avec séparation des apostrophes

$value est un tableau...
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

aladdin a dit:
fallait expliquer ;)

il te suffit d'ajouter
Code:
setlocale(LC_CTYPE, 'fr_FR.ISO-8859-1');

au tout début de ton script, et ensuite d'utiliser le code que tu as posté au début. pour matcher les numéros en plus des caractères tu peux utiliser :alnum: au lieu de :alpha:
ok je vais essayer ca. te tiens au courant
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

ca change rien. je pers toujours les accents ...

Precision : ma page est iso et le texte en question vient d'un site utf8. Donc j'ai applique un utf decode sur le texte avant
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

Tu peux nous dire ce que contient $_ENV['LANG'] (voire l'ensemble de $_ENV, voire l'ensemble de phpinfo)?

Jacques.
 
WRInaute accro
Re: Pour connaisseurs en expression regulières

jcaron a dit:
Tu peux nous dire ce que contient $_ENV['LANG'] (voire l'ensemble de $_ENV, voire l'ensemble de phpinfo)?

Jacques.
je vais regarder cela.
 
WRInaute accro
et
Code:
preg_match_all("#[0-9a-zàáâãäåòóôõöøèéêëçìíîïùúûüÿñÀÁÂÃÄÅBÈÉËÊÌÍÎÏÒÓÔÕÖÙÚÛÜÝ]{2,}#i", ($content),$tab_mots);
?
 
WRInaute accro
bon la avec le lancement de tpmc j'ai été un peu en pause sur cet autre dossier. je regarde ca dans la semaine de toute façon.
 
Discussions similaires
Haut