簡體   English   中英

從PHP中的字符串中提取正則表達式的最后一個實例

[英]Extract last instance of a regular expression from string in PHP

我有以下結構的URL: http : //somewebsite.com/directory1/directory2/directory3 ...

我正在嘗試從此url獲取最后的目錄名稱,但是url的深度並不總是恆定的,因此我不認為我可以使用簡單的substr或preg_match調用-是否有函數來獲取最后的實例一個字符串的正則表達式匹配?

只需使用:

basename( $url )

它應該具有預期的效果

Torben的答案是處理此特定情況的正確方法。 但為了后代,這是獲取正則表達式匹配的最后一個實例的方法:

preg_match_all('/pattern/', 'subject', $matches, PREG_SET_ORDER);
$last_match = end($matches); // or array_pop(), but it modifies the array

$last_match[0]包含完整匹配項, $last_match[1]包含第一個帶括號的子模式, $last_match[1]

另一個興趣點:正則表達式'/\\/([^/])$/'應該保持原樣,因為$將其錨定在末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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