如何使用正则表达式在PHP中提取文本

far*_*oft 11 php regex extract match

我的文字:

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 
Run Code Online (Sandbox Code Playgroud)

我想提取iso-8859-6

Bil*_*oon 21

你可以这样做: preg_match('/charset="([^"]+)"/',$string,$m); echo $m[1];


编辑:如果所有需要匹配(从其他答案提示)修改如下:

preg_match_all('/charset="([^"]+)"/',$string,$m); print_r($m);

  • +1.但是当有更精确的表达时,不要使用点.在这种情况下,我们正在寻找不是引号的字符:即`"[^"] +"`.谢谢你的意思和意思你说的话!_(ps懒惰的点很慢 - 正则表达式引擎必须回溯一次每个角色.这个特定的例子不是问题,但在处理较长的文本时可能很重要.)只是说' (2认同)