Hello! 欢迎来到小浪云数据!

如何使用正则表达式截取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;
登录后复制

相关阅读