[英]Regex For Get Last URL
我有:
stackoverflow.com/.../link/Eee_666/9_uUU/66_99U
/Eee_666/9_uUU/66_99U
正则表达式是什么?
Eee_666
, 9_uUU
和66_99U
是一个随机值
我该如何解决?
就如此容易:
$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);
请注意,虽然它会占用期望/
(包括换行符)的任何字符,因此您要么也要排除其他字符,要么仅使用您的格式为引擎提供字符串。
请参阅regex101.com上的演示 。
你可以在这里使用\\K
来使我更彻底。
stackoverflow\.com/.*?/link/\K([^/\s]+)/([^/\s]+)/([^/\s]+)
见演示。
在你没有如何长度的情况下:
$string = stackoverflow.com/.../link/Eee_666/9_uUU/66_99U
$regexp = ([^\\/]+$)
结果: group1 = 66_99U
小心它也可能捕获终点线
对于这种要求,使用preg_split与array_slice结合使用更简单:
$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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.