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

前端之家收集整理的这篇文章主要介绍了如何使用正则表达式从字符串中提取值.(PHP)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的字符串

\"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']);

猜你在找的正则表达式相关文章