所以我有一个看起来像这样的字符串:
profile=123456&imagehd=image%20profile%20123456.hd.jpg&imagesd=image%20profile%20123456.sd.jpg&name=test_user
我想要做的是在正则表达式模式的帮助下提取imagehd和图像化的字符串(image%20profile%20123456.hd.jpg
和image%20profile%20123456.sd.jpg
)。我没有正则表达式模式的经验,这就是我问你们的原因。我在想,为了简化操作,只需通过url解码器运行字符串,使其可用,然后获取字符串。
字符串位于imagehd=
和&
(用于高清图像)之间以及imagesd=
和&
之间(用于SD图像)。
答案 0 :(得分:3)
为什么不使用更合适的功能?
parse_str($your_string_here, $data);
// now $data is all your data
echo $data['imagehd'];
echo "\n";
echo $data['imagesd'];
答案 1 :(得分:2)
像这样:
preg_match('~(?<=imagehd=)[^&]+~', $string, $match);
print_r($match);
答案 2 :(得分:1)
实际上,你甚至不需要正则表达式。相反,您可以使用parse_str(),它将字符串视为查询字符串,并从中构造一个数组。然后,您将$imagehd
和$imagesd
作为变量。