Expression regulière avec caractères spéciaux - PHP - Programmation
Marsh Posté le 02-07-2015 à 13:38:10
Le regex en soi à l'air bon. Peut-être faut rajouter un /g ou /m?
J'ai testé avec un truc en ligne et pour /^#.*;$/gm ça marche:
aaa;
bbb;
#ccc
#ddd; <---match
#eee#
##aaaa;; <---match
Ou alors un problème de syntaxe (les '' ?) avec le code autour?
edit: C'est bien sûr des '/' et non '\'.
Marsh Posté le 02-07-2015 à 13:59:36
Merci mais c'est de \ pas des / ?
Pour mettre le truc dans son contexte, j'ai une variable $var qui contient du texte, et, de temps en temps, quelque chose comme #include machin.php;
L'idée est de retirer ce #include machin.php;
Je fais donc
preg_replace('/^#.*;$/gm','',$var);
Mais avec le /gm (ou \gm) ça ne marche pas non plus
Marsh Posté le 02-07-2015 à 14:03:41
zezette a écrit : Merci mais c'est de \ pas des / ? |
Pardon, erreur de ma part, j'ai corrigé mon post.
Marsh Posté le 02-07-2015 à 14:09:35
mais ça marche quand même pas
Marsh Posté le 02-07-2015 à 14:09:36
Au pif, j'aurais pas des espaces avant le # ou après le ;? Je ne parle pas PHP mais vu les infos sur le net ton truc à l'air bon...
edit: ^\s*#.*;\s*$ ça donne quoi?
Marsh Posté le 02-07-2015 à 14:34:29
Ca ne marche pas non plus
Marsh Posté le 02-07-2015 à 14:52:37
preg_replace("/^#.*;\s*$/m", '', $var);
Code :
|
En sortie:
et d'autres trucs blabla
Testé ici: http://preg_replace.onlinephpfunctions.com/
le modificateur g n'y était pas le bienvenu quand j'ai testé.
Faut mettre des doubles quotes si vous passez la regexp directement à la fonction pour interpréter correctement les \s je pense. (je fais pas de PHP, mais c'est le fruit bâtard de l'accouplement de Perl et Apache, donc mon raisonnement a de bonnes chances d'être le bon).
A+,
Marsh Posté le 02-07-2015 à 14:58:59
Merci !!!
J'ai rien compris à ton expression régulière, mais ça marche
Marsh Posté le 02-07-2015 à 15:09:57
'/^#.*;\\s*$/m';
C'est pareil que "/^#.*;\s*$/m"
^# -> en début de ligne un #
;\s*$ -> en fin de ligne un ; suivi éventuellement de blanc(s)
.* -> entre les deux: des caractères (d'ailleurs, ici, un + serait mieux qu'une *)
/.../m -> multiligne (si$var contient plus d'une ligne)
A+,
Marsh Posté le 02-07-2015 à 11:58:39
Bonsoir à tous,
En php, je veux rechercher toutes les chaines de caractères qui commencent par # et qui finissent pas ;
J'ai essayé ceci :
'/^#.*;$/'
Mais ça ne marche pas...
Une idée ?
Merci
---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes