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 :
Quand j'utilise cette regex, ça fonctionne, le mot function est bien remplacé :
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'; } }
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é.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php $str = preg_replace('#^function#i', "--replaced--", $str); ?>
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
Partager