Soucis de regex !

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Soucis de regex !

Message le Mer Juin 27, 2007 11:34

salut,

Voilà j'ai un tout petit soucis de regex, j'espère que vous pourrez m'aider :

Grosso modo je souhaite encadrer certains mots par deux doubles crochet ...

par exemple remplacer "blablabla titi blabla bla" par "blablabla [[titi]] blabla bla".

A priori simple ?

Seulement je souhaites prendre en compte les accents, ca donne des regex du genre :


preg_replace("#\b(t[iíîìï]{1}t[iíîìï]{1})\b#isU", "[[\\1]]", $texte, 1);

Ca marche niquel ... sauf quand le mot se termine par un accent !

si par exemple on a titîblabla , il va encadrer titî , alors que ca devrait etre empeché par le \b :( .

Vous avez une idée ?

merci d'avance !


Joe Le Mort
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 260
Inscription: 8 Aoû 2006

Message le Mer Juin 27, 2007 11:42

tu serais pas deja passé ici toi ?


Joe Le Mort
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 260
Inscription: 8 Aoû 2006

Message le Mer Juin 27, 2007 11:43


vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Message le Mer Juin 27, 2007 12:06

Héhé ouais :D

Il me reste juste ce petit soucis et ca devrait fonctionner niquel :D


Joe Le Mort
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 260
Inscription: 8 Aoû 2006

Re: Soucis de regex !

Message le Mer Juin 27, 2007 13:25

vin-moi a écrit:preg_replace("#\b(t[iíîìï]{1}t[iíîìï]{1})\b#isU", "[[\\1]]", $texte, 1);

Ca marche niquel ... sauf quand le mot se termine par un accent !

si par exemple on a titîblabla , il va encadrer titî , alors que ca devrait etre empeché par le \b :( .

Vous avez une idée ? !

Moi je découperai chaque mot de la chaine dans un tableau.
S'il contient un accent, alors tu encadre la valeur.
tu parcours ton tableau et tu affiches mots à mots;

peut etre que qqun a une autre soluce :wink:

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Message le Mer Juin 27, 2007 18:22

Salut,

bah pour le moment j'ai remplace le \b par :

([^a-z0-9áâàäéêèëíîìïóôòöúûùüýçñ-]+)

pour signifier qu'il ne doit pas y avoir de lettre ou de tiret collé au mot, et ca marche bien :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités