我的目标:
要捕获 URL 的最后一部分,无论是否存在尾部斜杠,但尾部斜杠不是 URL 上字符串的一部分,类似于以下内容:
http://foo.com/p/dPWjiVtX-C/
^^^^^^^^^^
The string I want
我的问题:
我尝试的每一种方式都只允许尾部斜杠,而不是没有尾部斜杠的 url,或者使尾部斜杠包含在我想要的字符串中。
我尝试了什么?
1. 我尝试在末尾添加一个斜杠:
$regex = "/.*?foo\.com\/p\/(.*)\//";
if ($c=preg_match_all ($regex, $url, $matches))
{
$id=$matches[1][0];
print "ID: $id \n";
}
当我没有尾部斜杠时,这会导致错误。
2. 我试过加一个问号:
$regex = "/.*?foo\.com\/p\/(.*)[\/]?/";
这会导致斜线(如果存在)在我的字符串中。
我的问题/tl;博士:
如何构建一个不需要斜杠的正则表达式,但又不让斜杠出现在我前面的字符串中?