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 sur ligne contenant n fois le pattern [RegEx]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut preg_match_all sur ligne contenant n fois le pattern
    Bonjour,
    j'ai le pattern suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/\_\([\"|\'](.+)[\"|\']\)/';
    qui me permet de trouvé _('trilili') ou _("trilili") voir _('trilili") ou _("trilili') dans du texte.
    Je le passe en paramètre de la fonction preg_match_all

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all($pattern, $contenu_de_fichier, $tableau_des_resultats)
    Jusque là rien d'extraordinaire, ça fonctionne dans pas mal de cas.
    Mon problème c'est que lorsqu'il tombe sur une ligne comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    title="<?php echo Zend_Registry::get('translate')->_('retour');?>"><?php echo Zend_Registry::get('translate')->_('retour');?></a></div>
    il me remonte çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour');?>"><?php echo Zend_Registry::get('translate')->_('retour
    En gros il part du premier _(' pour s'arrêter au dernier ').
    Y as t'il une astuce pour l'obliger à prendre en compte tout les patterns ?
    "J'vous r'merci d'vôte bonté" !
    Dernière modification par Invité ; 25/11/2008 à 16h48.

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Nous ne le répèterons jamais assez : les quantifieurs sont greedy par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/_\(["|\'](.+?)["|\']\)/';
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/_\(["|\'](.+)["|\']\)/U';
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je ne le répèterai jamais assez : Infameus est content et il te dit merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2013, 11h04
  2. Réponses: 3
    Dernier message: 08/03/2010, 05h29
  3. la moyen des champs sur ligne
    Par nah_wah dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 04/08/2005, 11h45
  4. [CSS][Débutant] Rollover sur ligne d'un tableau
    Par Nyx de Tours dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 12/07/2005, 09h25
  5. Réponses: 14
    Dernier message: 30/03/2005, 21h50

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