如何使用正则表达式截取URL中&referer=和&username之间的部分?

如何使用正则表达式截取url中&referer=和&username之间的部分?

如何正则截取&referer=和&username之间的部分?

给定一个url字符串,需要正则截取从&referer=到&username之间的部分。

示例url:

web.admin.com/admin/usermanage/investuser?start=2018-01-02%2000:00:00&end=2018-01-02%2010:41:46&itype=3&isfirst=3&referer=url_encoded_value&username=username

注意:

用户提供的示例url链接有误,包含未经url编码的特殊字符&,这意味着它不能被正则表达式可靠地解析。因此,下方提供的正则表达式仅适用于url编码正确的字符串,例如:

web.admin.com/admin/usermanage/investuser?start=2018-01-02%2000:00:00&end=2018-01-02%2010:41:46&itype=3&isfirst=3&referer=%2fregister2%3fv%3d10f454%26key%3d311bcdec754052e40fe025a54f488f9a%26rbref%3drbzc%26isshow%3d%26username%3d%26pname%3d%26plattype%3d0%26istatus%3d1%26buy_type%3d0%26channel_source%3d62&username=user

正则表达式

preg_match('/&referer=(.*?)&username=(.*)/', $url, $match);
$result = $match[1];

示例代码:

$url = 'web.admin.com/admin/userManage/investuser?start=2018-01-02%2000:00:00&end=2018-01-02%2010:41:46&itype=3&isfirst=3&referer=URL_ENCODED_VALUE&username=USERNAME';

$match_result = '';
preg_match('/&referer=(.*?)&username=(.*)/', $url, $match);
if (isset($match[1])) {
  $match_result = $match[1];
}

// 输出截取的结果
echo $match_result;

以上就是如何使用正则表达式截取URL中&referer=和&username之间的部分?的详细内容,更多请关注其它相关文章!