我有一个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]
包含第一个带括号的子模式,等等。
另一个有趣的点:您的正则表达式'/'/([^/])$/'
应该按原样工作,因为$
将其锚定到末尾。