php - 如何使用正则表达式从字符串中提取值。(PHP)

标签 php regex cakephp

我有一个这样的字符串

\"access_token=103782364732640461|2.ZmElnDTiZlkgXbT8e34Jrw__.3600.1281891600-10000186237005083013|yD4raWxWkDe3DLPJZIRox4H6Q_k.&expires=1281891600&secret=YF5OL_fUXItLJ3dKQpQf5w__&session_key=2.ZmElnDTiZlkgXbT8e34Jrw__.3600.1281891600-10000186237005083013&sig=a2b3fdac30d53a7cca34de924dff8440&uid=10000186237005083013\"

我要提取UID。

最佳答案

如果没有更多信息,很难给出最佳答案。你可以试试这个正则表达式:

'/&uid=([0-9]+)/'

示例代码:

$s = '\"access_token=103782364732640461|2.ZmElnDTiZlkgXbT8e34Jrw__.3600.1281891600-10000186237005083013|yD4raWxWkDe3DLPJZIRox4H6Q_k.&expires=1281891600&secret=YF5OL_fUXItLJ3dKQpQf5w__&session_key=2.ZmElnDTiZlkgXbT8e34Jrw__.3600.1281891600-10000186237005083013&sig=a2b3fdac30d53a7cca34de924dff8440&uid=10000186237005083013\"';
$matches = array();
$s = preg_match('/&uid=([0-9]+)/', $s, $matches);
print_r($matches[1]);

结果:

10000186237005083013

但我注意到您输入的字符串看起来像是 URL 的一部分。如果是这种情况,您可能需要使用 parse_str反而。这将正确处理许多正则表达式无法正确处理的特殊情况。

$arr = array();
parse_str(trim($s, '\"'), $arr);
print_r($arr['uid']);

关于php - 如何使用正则表达式从字符串中提取值。(PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487961/

相关文章:

PHP动态获取siteurl

javascript - 正则表达式模式匹配顺序

cakephp - 在 Cakephp 中创建单选按钮的表单助手

php - 如何将此 PHP 正则表达式转换为 Javascript?

javascript - JavaScript 中的正则表达式

cakephp - 如何加载非默认模型?

php - 如何在 MAMP 中运行本地主机而不提供任何端口号?

php - 从 db 获取数据到 laravel 5.2 中的 View 的问题

php - 哪个第三方购物车可以轻松与 MODX Revolution 集成?

javascript - 使用 Javascript 或 CSS 裁剪图片?