IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Petit probleme de motif Regex


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Petit probleme de motif Regex
    Bonsoir à tous !

    voila je me creuse la tete depuis pas mal de temps sur un probleme avec une expression reguliere pour un preg_replace

    Dans la chaine testée je voudrai extraire un mot precis (appelons mot! lol), verifier qu'il n'est pas contenu dans une balises <a></a> (pas forcement tout seul), et si le transformer en lien (d'ou la verif precedente)
    Mon masque semble fonctionner plutot bien sauf que, si le mot en question est précédé ou suivi d'un espace ou d'une ponctuation, et bien cet espace ou cette ponctuation est 'inclus' dans mon lien
    en gros au depart j'ai :
    " bonjour voici le mot à trouver !"
    et apres traitement :
    " bonjour voici le<a href="monsite.com"> mot </a>à trouver"
    voici le motif en question ( le [[:alpha:]]{0,1} c'est pour un eventuel pluriel car je cherche 'mot' ou 'mots')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("[([^\<a.*?\>]".$motatrouver."[[:alpha:]]{0,1})[^\</a\>]]", '<a href="#">$0</a>',$chaine);
    Si quelqu'un a une suggestion, parce que j'ai beau me triturer les neurones avec divers docs (excellentes au passage) et faire des tests a tour de bras, rien n'y fait, je suis d'autant plus etonné que si je fais la meme chose sans me préoccuper des balises <a> (autrement dit si le mot etait dans une balises <a> elle se retrouve doublee) et bien ca ne prend que le mot lui meme et pas le caractere precedent ou suivant

    en vous remerkiant

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#(\s)((?!<a.*>)('.$motatrouver.'[a-z]?)(?!</a>))(\s)#U', '$1<a href="#">$3</a>$4', $chaine);

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#(\s)((?!<a.*>)('.$motatrouver.'[a-z]?)(?!</a>))(\s)#U', '$1<a href="#">$3</a>$4', $chaine);
    Merci de ta réponse !
    ton motif fonctionne "moins bien" que le mien, dans le sens ou si je recherche le mot " cerise " en tenant compte du pluriel avec un s a la suite ca ne fonctionne pas, ca fonctionne pas non plus si le mot en question est suivi d'une ponctuation (virgule, point d'interrogation..)

    Je me suis rendu compte d'un autre probleme avec mon motif, si le mot a trouver est contenu dans une balise image (title) ca le remplace, et donc ca fait tout foirer ^^ (href dans une balise title de l'image en question)

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo