|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
Bonjour,
j'ai un fichier PHP me permettant de tester mon expression régulière. Code :
C'est à dire, qu'au lieu d'avoir : Citation:
Citation:
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin PREVOTArchitecte de système d'information Inscription : septembre 2004 Messages : 1 571 ![]() |
Salut, tu peux nous dire ce que tu souhaites faire ? Le résultat que tu attends, ce que tu obtiens à la place... Ca sera plus simple pour nous t'aider
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN F.A.Q. : Java, PHP, (X)HTML / CSS N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
Désolé je pensais avoir été clair avec mes exemples...
j'aimerais que mon expression régulière ajoute le balise <SPAN> dans certains cas (les lignes avec oui) et pas dans d'autres (les lignes avec non). En gros, je souhaite détecter une chaine parmi d'un texte à certaines conditions comme : - le terme "ea" ne doit être détecté dans "eau" ni dans "l'eau" ni dans "marteau"... - le terme "ea" doit être déctecté dans " ea ", ".e.a.", "(ea)", ",ea", "ea:", etc...
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
C'est un problème de locale. Quand aucune locale n'est fixé, les lettres accentuées sont considérées comme des caractères spéciaux (donc, des \W) et non des lettres.
Il suffit que tu mettes une locale pour les lettres accentuées deviennent des lettres (des \w). Ça se fait avec setlocale. Tu peux également utiliser \b pour désigner une limite de mot, ce sera une alternative plus simple et plus exacte à [\W\s]. |
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Une locale définit un ensemble de paramètres dits "de localisation", tels que le séparateur décimal, la devise par défaut, la langue à utiliser pour les noms des mois ou des jours de la semaine, etc. Pour ce qui concerne les regex, ça influe essentiellement sur la reconnaissance des caractères, par exemple en déterminant ce qui est \w ou \W.
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
la détection REGEX avec cette même page encodée en ISO-8859-1 fonctionne parfaitement !
![]() est-ce que je suis obligé d'encoder mon texte avant preg_replace() ? |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Parce que si tu n'encodes pas tu es en quoi ? en UTF-8 ?
RTFM pour savoir si les preg comprennent correctement l'Unicode. |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
ma page est entièrement en UTF-8...
la doc PHP n'est pas très clair sur l'UTF-8, je trouve rien d'interessant. |
|
|
00
|
|
|
#10 | |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
j'ai trouvé quelque chose d'intéressant sur ce site
http://www.expreg.com/options.phpIl y a l'option u qui permettrai de traiter les chaines UTF-8... Citation:
Avec le peu d'info à ce sujet, j'ai peur pour la fiabilité de cette option... Qu'en pensez-vous ? Vous avez des commentaires sur cette option ? |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com