Comment extraire du texte en php en utilisant les regex
Mon Texte :
12a49803-713c-4204-a8e6-248e554a352d_ Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: base64 DQrn0Ocg0dPH5MkgyszR6sjqySDl5iDH5OfoyuXq5A0KDQrH5OTaySDH5NnRyOrJIOXP2ejlySAx MDAlDQogCQkgCSAgIAkJICA= --_12a49803-713c-4204-a8e6-248e554a352d_ Content-Type: text/html; charset="iso-8859-6" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT48IS0tDQouaG1tZXNzYWdlIFANCnsNCm1hcmdpbjowcHg7
Je veux extraire iso-8859-6
Vous devez vous connecter pour publier un commentaire.
que vous pouvez faire:
preg_match('/charset="([^"]+)"/',$string,$m); echo $m[1];
Edit: Dans tous les cas besoin d'appariement (invité d'autre réponse) modifier comme ceci:
preg_match_all('/charset="([^"]+)"/',$string,$m); print_r($m);
"[^"]+"
. Dire ce que tu veux dire et dire ce que vous dites! (p.s. Le point paresseux est lente, le moteur d'expressions régulières doit revenir en arrière une fois pour chaque caractère. Pas de problème avec cet exemple particulier, mais peuvent être importants lorsque vous traitez avec des textes plus longs.) Just sayin'"
n'a pas besoin de s'évader.La regex que vous cherchez est:
Le code php que vous avez besoin est:
La sortie est:
si vous êtes intéressés à obtenir les deux matches (puisque vous avez 2 dans la chaîne) et itérer à travers eux, vous devez faire quelque chose comme cela.
aussi j'ai utilisé des guillemets simples pour ne pas avoir à s'échapper les guillemets à l'intérieur de la regex. utilisé ridgerunners suggestions aswell.