簡體   English   中英

正則表達式獲取最后一個URL

[英]Regex For Get Last URL

我有:

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

/Eee_666/9_uUU/66_99U正則表達式是什么?

Eee_6669_uUU66_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]+)

見演示。

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

在你沒有如何長度的情況下:

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

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

結果: group1 = 66_99U

小心它也可能捕獲終點線

對於這種要求,使用preg_splitarray_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM