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 :

Recupérer lien pour mot précis [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut Recupérer lien pour mot précis
    Bonjour,

    J'aimerai récupérer le lien contenu dans un suivant le mot entre les 2 balises.

    Je m'explique : si je cherche le mot 'coucou' et quand dans mon texte j'ai :

    <a href="developpez.com?id=12543">coucou je suis un forumeur</a>
    j'aimerai récupérer l'url developpez.com?id=12543. En gros en mots français ça donnerai :

    Récupère l'url du lien si tu trouve le mot à rechercher entre les balises.

    PS : j'utilise en général des preg_match

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Cela donnerai un truc du genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/<a href(.*?)<\/a>/si", "", "texte");
    Avec ça il me récupère un lien html, mais il faudrait spécifier dans le regex qu'il y ai "coucou" par exemple.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Bonjour,


    Tout ça est du grand n’importe quoi:

    Tu fais une exposition entortillée du problème de base auquel les regex répondent.

    Par dessus le marché tu donnes des exemples qui n’ont rien à voir avec la description de preg_match:
    preg_match ( $pattern , $subject [, &$matches [, $flags [, $offset ]]] )
    http://fr2.php.net/manual/fr/function.preg-match.php


    En exprimant ton objectif de façon simple, ça donne
    Extraire une url d’un motif de balise contenant le mot ’coucou’
    C’est la définition d’une recherche par regex tout à fait triviale.


    Dès lors ceci devrait marcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#<a href="(.+)">.*coucou.*</a>#U'


    Je te conseillerais la chose suivante quand tu cherches une RE: dis toi que tu cherches à écrire la description d’un motif, et non pas que tu cherches à décrire les actions que doivent être faites par le moteur de regex.



    Enore une chose à propos de
    PS : j'utilise en général des preg_match
    Peu importe. On doit utiliser des outils pour obtenir une résolution donnée, et non pas adapter une résolution en fonction d’un outil.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    je preconise plutot

    pour des raisons de performances ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    merci

    j'essaie de récupérer du texte qui se situe entre 2 liens où dans le 1er j'aurai par exemple 'coucou'.

    Ça ferait ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#<a href="([^"]+)">.*coucou.*</a>(.+)<a href=#Ui'
    J'ai repris mon regex précédent, en rajoutant à la suite


  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Il suffit d’essayer , non ?
    Soit tu l’as fait et le résultat te convient , et dans ce cas on se demande quel est le problème. Ou alors le résultat ne te convient pas, et alors pourquoi ne pas préciser ce qui ne va pas ?
    Soit tu ne l’as pas fait, et ce serait pour le coup carrément bizarre.


    Ce que je peux dire se limite à ceci:
    s’il n’y a pas de fin de ligne entre </a> et <a href= , ta regex fera ce que tu cherches à obtenir.



    Soit dit en passant, pourquoi écrire “mon regex“ alors qu’ expression est un mot féminin ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TP7] Liens pour tuto de programmation de jeux
    Par doderic dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 22/02/2005, 21h00
  2. Lien pour TELECHARGER une image plutôt que pour l'ouvrir
    Par nabab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2005, 18h07
  3. lien pour télécharger
    Par Kaimann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/10/2004, 12h05
  4. [ STRUTS ][ JSP ][ ArrayList] un lien pour trier
    Par LoulouFifi dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/02/2004, 17h24
  5. Tutoriels et liens pour le Borland Database Engine
    Par Community Management dans le forum Paradox
    Réponses: 0
    Dernier message: 25/03/2002, 10h23

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