cs_Valentino
Messages postés81Date d'inscriptionvendredi 19 juillet 2002StatutMembreDernière intervention 3 août 2010
-
14 avril 2009 à 12:12
cs_Valentino
Messages postés81Date d'inscriptionvendredi 19 juillet 2002StatutMembreDernière intervention 3 août 2010
-
8 oct. 2009 à 16:47
Bonjour,
Je souhaite enlever tout ce qui ce trouve entre crochets [] (inclut).
Alors que je souhaiterai :
"blabla blabla machin machin fin.
Je ne comprends pas pourquoi il ne fait pas toutes les occurrences entre crochet?!
Au lieu de cela il prend le 1er crochet en ouverture qu'il trouve et le dernier en fermeture...
cs_Valentino
Messages postés81Date d'inscriptionvendredi 19 juillet 2002StatutMembreDernière intervention 3 août 2010 15 avril 2009 à 10:08
Merci à tous pour votre aide.
DiGhan ton expression ne fonctionne pas...
Entre temps j'ai trouvé une autre façon de faire qui fonctionne aussi bien et même mieux dans un cas de figure ou il n'y a rien entre les crochets [] :
preg_replace("@\[[\!]*?[^\[\]]*?\]@","",$chaine);
Je vous avous que je ne comprend pas tous ce qu'implique cette expression, je l'ai "bidouillé" sans comprendre certaine de ses composantes... si quelqu'un se sent capable de m'expliquer pas à pas je suis preneur.
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 16 avril 2009 à 17:17
`\[[^]]*]`
` => délimiteur PCRE
\[ => le caractère [ puisque échappé (pour que le moteur ne l'interprète pas comme l'ouverture d'une classe)
[ => ouverture de la classe
^] => tous les caractères sauf le ] (pas besoin de l'échapper ici puisqu'il est en première position dans la classe et qu'une classe vide n'est pas reconnue)
] => fermeture de la classe
* => rien ou plusieurs fois ce qui précède
(cad
[^]])