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 :

Très léger problème pour scinder une chaine [RegEx]


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Points : 65
    Points
    65
    Par défaut Très léger problème pour scinder une chaine
    Bonjour,

    J'ai dans un fichier texte, des url sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    value="free-view-tv.com">
    value="quivee.co.uk">
    Il y a également d'autres url sans importances, je ne souhaites que récupérer celles sous la forme citée ci-dessus.

    J'ai donc pensé faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
      // extraction url
        $pattern = preg_match_all(
      '#value="([a-z0-9]{3,}-?){1,}(\.?[a-z0-9]{1,}?){1,4}">#i',
              $a,
              $match2
          );
    if ($pattern) 
    {
    foreach($match2[0] as $resultat) 
    {
    list($value, $url) = split('"', $resultat);
        echo "Extraction : ", $resultat, "\n <br>";    
        echo "dont l url est: ", $url, "\n";
    ?>
    Le soucis est que cela me retourne pour la variable url:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    free-view-tv.com">
    quivee.co.uk">
    Normal...Mais comment je peux faire pour que cela ne retourne que l'url?

    Peut être existe t il un moyen pour demander au regex de ne que sélectionner ce qu'il y a entre value=" et ">

    Merci pour votre aide

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,
    une regex comme "@value=\"(.*)\">@U" ne suffirait pas ?

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Points : 65
    Points
    65
    Par défaut
    Euh, peut être bien que cela suffirait, en ajoutant le tiret (-) dans la regex...Mais je trouve cela moins lisible

    Enfin tout est une question d'optique...Ma regex fonctionne tout aussi bien :-)

    J'ai supprimer le "> à la fin et maintenant cela fonctionne.

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/06/2014, 15h52
  2. [Toutes versions] Probleme pour scinder une chaine de caracteres
    Par Samanosuke dans le forum Excel
    Réponses: 5
    Dernier message: 02/05/2012, 14h01
  3. C#4/RegEx] Problème pour isoler une chaine
    Par CUCARACHA dans le forum C#
    Réponses: 7
    Dernier message: 18/02/2011, 16h50
  4. Problème pour chercher une chaine..
    Par shell13010 dans le forum Général Python
    Réponses: 8
    Dernier message: 31/10/2009, 20h34
  5. Réponses: 4
    Dernier message: 04/11/2007, 13h46

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