从PHP中的字符串中提取正则表达式的最后一个实例

时间:2011-12-16 14:21:04

标签: php

我有一个符合以下结构的网址:http://somewebsite.com/directory1/directory2/directory3 ...

我正在尝试从这个url获取最后一个目录名,但是url的深度并不总是常数,所以我不认为我可以使用简单的substr或preg_match调用 - 是否有一个函数可以获取从字符串中匹配正则表达式的最后一个实例?

2 个答案:

答案 0 :(得分:4)

只需使用:

basename( $url )

它应该具有预期的效果

答案 1 :(得分:1)

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]包含第一个带括号的子模式等。

另一个兴趣点:您的正则表达式'/\/([^/])$/'应该按原样运行,因为$将其锚定到最后。