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 :

extraire toutes les occurences de type [©D©#D©] d'une chaine de caractère


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut extraire toutes les occurences de type [©D©#D©] d'une chaine de caractère
    Bonsoir,
    Est-il possible à l'aide des regex d'extraire d'une chaine toutes les occurences de type [©D#D©] ou # est un nombre et récupérer la liste de ces fameux nombre dans un tableau...

    question subsidiaire: si la réponse est "oui", comment faire?

    J'avoue patauger avec les Regex mais je me dis que ça doit pouvoir se faire avec...

    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu peux faire comme suit.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $pattern = "/\[©D(\d+)D©\]/msi";
    $texte   = "aaaa [©D12345D©] vvvvvvv [©D2017D©] nnnnn [©D05D©] wwwww [©D40832D©]  ";
    preg_match_all($pattern,$texte,$array);
    foreach($array[1] as $value) {
     print "$value<br/>";
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    je vais essayer ça de suite...

    merci beaucoup!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    Ca marche à merveille! un immense merci!

    En fait j'ai le meme "soucis" pour un truc analogue, style extraire toutes les occurrences d'une chaine de type [©G#G©], [©C#C©] pour récupérer le # qui serait aussi un nombre.

    Je comprends comment faire en refaisant une paterne du type de celle proposée mais peut ont mixer les trois en une seule opération?

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Essaie ça. Pas testé.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $pattern = "/\[©(D|G|C)(\d+)\\\]/msi";
    $texte   = "aaaa [©D12345D©] vvvvvvv [©D2017D©] nnnnn [©D05D©] wwwww [©D40832D©]  ";
    preg_match_all($pattern,$texte,$array);
    foreach($array[2] as $value) {
     print "$value<br/>";
    }
    [/QUOTE]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    dans la série je suis un boulet:

    le truc marche très bien avec la chaine proposée, mais pas du tout avec une chaine extraite d'une base de donnée...

    quand j'affiche la chaine test, avant de la traiter,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte   = "aaaa[©D6357©]vvvvvvv[©G2017©]nnnnn[©C05©]wwwww[©G40832©]";
    ca m'affiche ca:
    aaaa[©D6357©]vvvvvvv[©G2017©]nnnnn[©C05©]wwwww[©G40832©]
    et ça la traite bien...

    Si ca vient de ma base, ca m'affiche ce qui est écrit, sans rajouter de caractères ésotériques, et ça ne traite pas bien... bizarre?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    autre question bête: pourquoi utilises tu $array[2] dans la seconde version et $array[1] dans la première?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    [mode en apparté]
    Tu est un sacré mordu de calculatrice! Je regrette pour am part le fait que HP ai abandonné les calculettes... ahhh, la RPL...
    [/mode en apparté]

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/02/2013, 13h03
  2. Retrouver toutes les occurences dans un memo
    Par johweb dans le forum Delphi
    Réponses: 2
    Dernier message: 09/06/2006, 14h44
  3. connaitre toutes les occurences d'une chaine
    Par semaj_james dans le forum C
    Réponses: 2
    Dernier message: 11/12/2005, 14h46
  4. Borland C++ 5.5 remplacer toutes les occurences
    Par cdelamarre dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/11/2005, 12h23
  5. replace() qui s'applique sur toutes les occurences
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2005, 11h27

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