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

Regex For Get Last URL

我有:

whosebug.com/.../link/Eee_666/9_uUU/66_99U

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

Eee_6669_uUU66_99U为随机值

我该如何解决?

就这么简单:

$link = "whosebug.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);

请注意,它会占用 任何 字符,但 /(包括换行符)除外,因此您要么也想排除其他字符,要么为引擎提供数据只有符合您格式的字符串。
参见 a demo on regex101.com

你可以在这里使用\K使我更彻底。

Whosebug\.com/.*?/link/\K([^/\s]+)/([^/\s]+)/([^/\s]+)

查看演示。

https://regex101.com/r/jC8mZ4/2

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

$string = whosebug.com/.../link/Eee_666/9_uUU/66_99U

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

结果: group1 = 66_99U

小心它也可能捕获结束行字符

这种需求,使用preg_split combined with array_slice更简单:

$url = 'whosebug.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
)