[英]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.