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 :

Ancre de début ^ multiligne [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut Ancre de début ^ multiligne
    Bonjour,

    J'ai un problème avec une regex et l'utilisation de l'ancre de début de ligne : ^

    Voici la chaine ($str) que je veux analyser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function truc($machin = 'truc', $bidule = false)
    {
            echo 'truc'; /* function (ne doit pas être remplacé car pas en début de ligne) */
    }
     
    class truc{
            function __construct()
            {
                    echo 'truc';
            }
    }
    Quand j'utilise cette regex, ça fonctionne, le mot function est bien remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $str = preg_replace('#function#i', "--replaced--", $str); ?>
    Mais quand j'ajoute l'ancre de début : ^ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $str = preg_replace('#^function#i', "--replaced--", $str); ?>
    Et bien ça ne fonctionne plus, rien n'est matché, donc rien n'est remplacé.

    Je crois que c'est parce qu'il interprète le ^ comme "le début de la chaine", or moi je voudrais que ^ désigne le début de chaque ligne.

    Il doit surement y avoir un flag spécial pour ça... pourriez vous me l'indiquer ?

    Merci

  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
    Modificateur m pour que ^ ait sens de début de ligne et non plus (uniquement de) début de chaîne.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. Débuts : classe / méthode main
    Par P@t dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 10/07/2004, 03h45
  2. Début en OpenGL
    Par cyber_N dans le forum OpenGL
    Réponses: 3
    Dernier message: 30/06/2004, 08h12
  3. StringGrid, multiligne et word wrap
    Par Dajon dans le forum C++Builder
    Réponses: 7
    Dernier message: 17/09/2003, 17h15
  4. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56
  5. Toutes les bonnes choses ont un début ...
    Par Bols2000 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/08/2002, 17h01

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