PHP:从字符串中提取字符串

时间:2016-04-28 10:42:55

标签: php regex preg-match

我有一种来自API Get-request的字符串:

1:ncol(data)

我想提取X-CSRF-Token,后面列出了: x-csrf-token:

在这种情况下,它将是

  

dZgtpkwUMaN-gQ1X4QEXUw ==

我如何以最好的方式做到这一点?

我是否使用preg_match_all?但那么,我有点失落。 谢谢你的任何建议。

2 个答案:

答案 0 :(得分:2)

这个正则表达式将起作用

x-csrf-token:(.*?)(?=\w+:)

<强> Regex Demo

PHP代码

$re = "/x-csrf-token:(.*?)(?=\\w+:)/m"; 
preg_match_all($re, $str, $matches);
print_r($matches[1]);

<强> Ideone Demo

更好的解决方案是在\w+:之外有空格时停止(假设空格不能成为x-csrf-token的一部分)

x-csrf-token:\s*(.*?)(?=\w+:|\s)

答案 1 :(得分:0)

您可以将csrf-token: (.*?==)preg_match_all一起使用,即:

preg_match_all('/csrf-token: (.*?==)/im', $string, $token, PREG_PATTERN_ORDER);
$token = $token[1][0];
echo $token;
//dZgtpkwUMaN-gQ1X4QEXUw==

Ideone Demo