Php 获取最后一个URL的正则表达式

Php 获取最后一个URL的正则表达式,php,regex,preg-replace,Php,Regex,Preg Replace,我有: /Eee_666/9_uu/66_99U的正则表达式是什么 Eee_666、9_uu和66_99U是一个随机值 我该怎么解决呢?就这么简单: stackoverflow.com/.../link/Eee_666/9_uUU/66_99U 请注意,它会吃掉除/(包括换行符)以外的任何字符,因此您也可以将其他字符排除在外,或者只向引擎提供格式字符串。 请参阅。您可以在此处使用\K使我更全面 $link = "stackoverflow.com/.../link/Eee_666/9_uUU/

我有:

/Eee_666/9_uu/66_99U
的正则表达式是什么

Eee_666
9_uu
66_99U
是一个随机值

我该怎么解决呢?

就这么简单:

stackoverflow.com/.../link/Eee_666/9_uUU/66_99U
请注意,它会吃掉除
/
(包括换行符)以外的任何字符,因此您也可以将其他字符排除在外,或者只向引擎提供格式字符串。

请参阅。

您可以在此处使用
\K
使我更全面

$link = "stackoverflow.com/.../link/Eee_666/9_uUU/66_99U";
$regex = '~link/([^/]+)/([^/]+)/([^/]+)~';
# captures anything that is not a / in three different groups
preg_match_all($regex, $link, $matches);
print_r($matches);
见演示


如果您不知道字符串的长度:

$string=stackoverflow.com/../link/Eee_666/9_uu/66_99U

$regexp=([^\/]+$)

结果:
group1=6699u


请注意,它还可能捕获端点字符。对于此类需求,它与以下内容结合使用更简单:

输出:

$url = 'stackoverflow.com/.../link/Eee_666/9_uUU/66_99U';
$elem = array_slice(preg_split('~/~', $url), -3);
print_r($elem);

这将捕获任何带有
link
word的链接,并且不仅针对
stackoverflow
@vks:True,而且我猜在要捕获的三个组之前有一个重复模式。
$url = 'stackoverflow.com/.../link/Eee_666/9_uUU/66_99U';
$elem = array_slice(preg_split('~/~', $url), -3);
print_r($elem);
Array
(
    [0] => Eee_666
    [1] => 9_uUU
    [2] => 66_99U
)