Petite aide avec les regex :D

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

Petite aide avec les regex :D

Message le Lun Juin 25, 2007 13:06

Salut,

voilà j'ai quelque chose de "simple" à réaliser en PHP :

- J'ai un texte avec des accents, admettons :

"j'ai un gros écrou, une vis, ainsi qu'une clé à molette".

- J'ai une une liste de mot enregistré dans un tableau, sans accent :

gros ecrou
vis
cle

- Je veux donc vérifier la présence de ces mots dans mon texte. Je parcourt donc chaque ligne du tableau contenant les mots, et je compare chaque mot au texte en prenant soin de supprimer tous les accents dans le texte. J'arrive donc à trouver les mots de la liste qui sont présent dans le texte.

L'objectif est d'ajouter des crochets autour des mots trouver ... Mais là je vois pas comment faire ? Le problème est que ce remplacement doit être fait dans le texte avec les accents et non dans le texte sans accent qui a servit à faire la vérification ?

Auriez-vous une idée ? Existe t'il une option pour les regex qui permettrait de pas prendre en comtpe les accent ? (des fois ca serait bien d'être anglais :roll: ).

Merci d'avance !


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

Message le Lun Juin 25, 2007 13:32

je ne comprend pas trop ton probleme.

Mais dans ton parcours de tableau, tu peux mettre chaque mots dans un autre tableau, en spécifiant pour un mot accentué, tu le rajoutes avec crochets, non ?

exemple rapide:

Code: Tout sélectionner
$tab=array();
foreach( $mots as $k => $v){
if mot accentué
$tab[$k]=>'['. $v.']';
else{
$tab[$k]=>$v;
}
}


non ?

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

Message le Lun Juin 25, 2007 13:41

Oui c'est à peu pres ce que j'ai fait :d

Le principal problème était au niveau de l'accentuation mais je viens de m'apercevoir que les regex s'en foutait des accents donc ca devrait tout résoudre :D

je vous tient au courant :)

[edit : argh non faux espoir :( ]
Dernière édition par vin-moi le Lun Juin 25, 2007 13:56, édité 1 fois.


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

Message le Lun Juin 25, 2007 13:44

quel est ton probleme avec les accents ?

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

Message le Lun Juin 25, 2007 13:58

Et bien c'est simple,


je fait par exemple quelque chose comme :

$texte = preg_replace("#(test)#", "[\\1]", $texte);

Ceci devrait me remplacer les mot "test" present dans le texte par "[test]". Mais j'aimerai aussi que les mots "tést" ou "tèst" puisse entre remplacés !

Il y a peu être une option pour ca ?

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

Message le Lun Juin 25, 2007 14:07

Sinon l'idée serait d'avoir un regex dans ce genre :

$texte = preg_replace("#(t[eéêè]+st)#", "-\\1-", $texte);

donc remplacer automatiquement les voyelles par leurs possibilités avec accent ou pas, mais je me demande si y'a pas plus simple/ moins lourd ?


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