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 :

pas prendre un caractere


Sujet :

Langage PHP

  1. #1
    Fabouney
    Invité(e)
    Par défaut pas prendre un caractere
    bonjour à tous

    je veux extraire l'artist et le titre de ce "string" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = "var titre = 'Michael - Jackson - Beat it';";
    je voudrais obtenir :
    artiste = Michael - Jackson
    titre = Beat it

    vous aurez compris qu'en fait j'aimerais ecrire une expression qui ne s'arrete pas au premier "-" si elle en rencontre un. j'ai écrit cette expression, elle fonctionne si y'a pas de "-" dans le titre ou dans le nom de l'artiste, mais si y'en a un et bien ca va plus :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pattern='/^var \w+[ ]?=[ ]?\'(.+) - (.+)\';/iU';
    par la même occasion si vous trouvé mon expression "moisie" lol vous pouvez apporter quelques modifications.
    merci d'avance.

    Cordialement.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Pourquoi pas un explode tout simplement avec un d'abord un substr sur le 1er et dernier apostrophes.

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    non je suis obligé de faire en regex pour différentes raison.
    et puis il y aurait bcp plus de traitement qu'avec une simple regex.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    En admettant que le titre ne comporte pas de tiret :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $string = "var titre = 'Michael - Jackson - Beat it';";
    if (preg_match('/^var \w+[ ]?=[ ]?\'(.+) - ([^-]+)\';/iU', $string, $m)) {
        echo 'Artiste : ' . $m[1];
        echo '<br/>';
        echo 'Titre : ' . $m[2];
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $string = "var titre = 'Michael - Jackson - Beat it';";
    if (preg_match('/^var \w+[ ]?=[ ]?\'(.+) - (.+)\';/i', $string, $m)) {
        echo 'Artiste : ' . $m[1];
        echo '<br/>';
        echo 'Titre : ' . $m[2];
    }

    Julp.

Discussions similaires

  1. ne pas prendre en compte la casse ni les accents
    Par pigpen dans le forum JDBC
    Réponses: 14
    Dernier message: 10/05/2007, 14h40
  2. Requete paramétré qui ne veut pas prendre de paramètre
    Par guigui5931 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/11/2006, 14h27
  3. [.NET] ne pas prendre en compte les "0"
    Par californialove dans le forum MFC
    Réponses: 16
    Dernier message: 05/06/2006, 10h05
  4. [XHTML] Ne pas prendre en compte les balises XHTML
    Par simnitch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 18/08/2005, 15h58
  5. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17

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