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 :

preg_match_all avec des signes specials * [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut preg_match_all avec des signes specials *
    bonjour

    j'ai des données comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $dans='
    jjjjjjjj
     
        * AC Input (Tension d'entrée) :11
        * DC Output (Tension de sortie ):22
        * connecteur:33
    ';
    j'aimerais récuperer pour chaque ligne commencant par
    étoile (*) avec la fonction preg_macht_all les données comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AC Input (Tension d'entrée) :11
    DC Output (Tension de sortie ):22
    connecteur:33
    j'ai fait le code comme ceci,mais ca me donne pas ce que je veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $rech='#([^\*]+)#';
    preg_match_all($rech, $dans, $out);print_r($out);
    voici le resultat
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Array
    (
        [0] => Array
            (
                [0] => 
    ssfsfgsfsfg
     
                [1] =>  AC Input (Tension d'entrée) :11
     
                [2] =>  DC Output (Tension de sortie ):22
     
                [3] =>  connecteur:33
     
            )
     
        [1] => Array
            (
                [0] => 
    ssfsfgsfsfg
     
                [1] =>  AC Input (Tension d'entrée) :11
     
                [2] =>  DC Output (Tension de sortie ):22
     
                [3] =>  connecteur:33
     
            )
     
    )
    j'aimerais enlever les lignes qui n'ont pas d' étoile devant comme du resultat mais impossible
    merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut
    Bonsoir,
    En ce moment, tu cherches toutes les chaines de caractère n'ayant pas d'étoile.
    Il me semble qu'il suffirait de faire :

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Citation Envoyé par Vagaweb Voir le message
    Bonsoir,
    En ce moment, tu cherches toutes les chaines de caractère n'ayant pas d'étoile.
    Il me semble qu'il suffirait de faire :
    ca ne marche ton code.
    ce serait plutot comme celà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rech='#(\*\s*)([^\*]+)#';

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut
    Bonjour,
    Tu as trouvé la solution alors pourquoi tu n'as pas prévenu ?

    J'ai fait un test pour voir si mon expression régulière fonctionnait. Elle fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dans='
        jjjjjjjj
     
            * AC Input (Tension d\'entrée) :11
            * DC Output (Tension de sortie ):22
            * connecteur:33
    ';
    $rech='#\*(.*)#';
    preg_match_all($rech, $dans, $out);
    print_r($out);
    Voila le résultat :
    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
    17
    Array
    (
        [0] => Array
            (
                [0] => * AC Input (Tension d'entrée) :11
                [1] => * DC Output (Tension de sortie ):22
                [2] => * connecteur:33
            )
     
        [1] => Array
            (
                [0] =>  AC Input (Tension d'entrée) :11
                [1] =>  DC Output (Tension de sortie ):22
                [2] =>  connecteur:33
            )
     
    )

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    avec ton code j'ai çà comme résultat:
    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
    17
    18
    19
    20
     
    Array
    (
        [0] => Array
            (
                [0] => * AC Input (Tension d'entrée) :11
        * DC Output (Tension de sortie ):22
        * connecteur:33
        *
            )
     
        [1] => Array
            (
                [0] =>  AC Input (Tension d'entrée) :11
        * DC Output (Tension de sortie ):22
        * connecteur:33
        *
            )
     
    )
    en fait les données en dessous sont stockés dans une ligned'un fichier csv.c'est pour celà que ton code ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        jjjjjjjj
     
            * AC Input (Tension d\'entrée) :11
            * DC Output (Tension de sortie ):22
            * connecteur:33

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut
    Ok.
    Dans ton message, tu avais précisé "chaque ligne commencant par ". ^^

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 21/09/2010, 19h45
  2. [RegEx] Utilisation de la fonction "preg_match_all" avec des apostrophe ou des œ
    Par arnaudperfect dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2008, 23h05
  3. Mes message dans windows mail s'affichent avec des signes bizarres
    Par diass dans le forum Outlook Express / Windows Mail
    Réponses: 1
    Dernier message: 14/08/2008, 03h20
  4. probleme avec des signed ou unsigned double
    Par le_voisin dans le forum C++
    Réponses: 6
    Dernier message: 11/09/2006, 20h34
  5. Réponses: 18
    Dernier message: 28/08/2006, 23h07

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