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 :

Expressions regulieres PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 19
    Points
    19
    Par défaut Expressions regulieres PHP
    bonjour

    je cherche à extraire une chaîne de caractères inclue dans une autre chaîne pour cela j'utilise la fonction preg_match_all qui semble donner de bon résultats, cependant cette fonction utilise un motif exprimé avec les expressions régulières pour extraire la chaîne

    mon problème est que je n'arrive pas à trouver ce motif pour le cas suivant:

    dans cet exemple j'ai ma chaîne :
    .R
    text text text text
    text text text text
    .G
    je souhaite extraire la chaîne
    "text text text text ...."
    avec les saut de lignes

    j'ai utilise ce motif mais ça donne pas de bon résultat:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $motif=''^(\.R)\s.+(\.G)$'';

    quel est le motif qu'on doit utilise?

    Merci d'avance.

  2. #2
    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 778
    Points
    17 778
    Par défaut
    Outre l'erreur de syntaxe et un ancrage inadapté (si on s'en réfère au choix de preg_match_all), il manque les séparateurs et le modificateur s pour que le métacaractère point inclut \n. Et, normalement, rendre le motif non gourmand.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $motif = '~\.R(.+)\.G~sU'; # ou ~\.R(.+?)\.G~s

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par julp Voir le message
    Outre l'erreur de syntaxe et un ancrage inadapté (si on s'en réfère au choix de preg_match_all), il manque les séparateurs et le modificateur s pour que le métacaractère point inclut \n. Et, normalement, rendre le motif non gourmand.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $motif = '~\.R(.+)\.G~sU'; # ou ~\.R(.+?)\.G~s
    ca marche tres bien merci

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    juste une dernière chose, comment exprimer le ou dans les expressions régulières
    car ici:
    '~\.R(.+)\.G~sU'
    la fin est G

    et moi je veux que la fin soit un G ou un T

    merci bcp bcp bcp

  5. #5
    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 778
    Points
    17 778
    Par défaut
    Si j'ai bien compris :
    • Dans le cas particulier d'un caractère, une classe suffit : [ABC] (le caractère a ou b ou c)
    • Sinon, par une alternative (métacaractère |) : foo|bar ("foo" ou "bar") - une parenthèse (non-)capturante pouvant alors être nécessaire : p(?:foo|bar)s pour pfoos ou pbars


    Ne pas oublier de consulter des tutoriels sur la question. Par exemple : Initiation aux expressions régulières en PHP

Discussions similaires

  1. [RegEx] php expression reguliere
    Par sajreborn dans le forum Langage
    Réponses: 1
    Dernier message: 18/11/2012, 19h57
  2. expression reguliere php
    Par hamzawii dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2010, 16h08
  3. [MySQL] expression reguliere dans php
    Par juzii dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/02/2009, 21h43
  4. expression reguliere php, balise entrelassé
    Par neril dans le forum Langage
    Réponses: 5
    Dernier message: 26/06/2006, 19h28
  5. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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