繁体   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