我正在尝试使用PHP preg_match获取我的网址的一部分,但它无法正常工作。我遵循了一些指示,但没有运气。
这是我到目前为止所做的。
$url = 'http://chris.mydomain.com/d/3542re6s/somthing.html';
$pattern = '/\/\/(sub1\.)?mydomain.com\/(\d+)($|\/)/';
preg_match($pattern, $url, $matches);
if (count($matches)){
return $matches[2];
}
我还需要它来验证chris,terry和jack。
更新:
例如: chris.mydomain.com terry.mydomain.com jack.mydomain.com
我需要获得第二个查询
例如:
chris.mydomain.com/d/3542re6s/somthing.html
将返回
3542re6s
非常感谢任何帮助。
提前致谢 ç
答案 0 :(得分:3)
您的正则表达式缺少//instead of sender and e, usually you should use different names
//because usually you are running this code in an event handler
//that has sender and e parameters itself
sb.Click += (object senderObject, EventArgs eventArgs) =>
{
//using (SimpleButton)sender you can find which botton is clicked
};
目录。此外,由于下一级包含数字和字母,因此您无法使用/d/
来匹配它。试试这个:
\d+
DEMO at regex101
PHP demo at ideone
当你编写一个正则表达式来匹配路径名时,我建议使用除$pattern = '#//(?:(?:chris|terry|jack)\.)?mydomain\.com/d/([^/]+)(?|/)#';
以外的分隔符,这样你就不必转义正则表达式中的所有斜杠;我上面使用了/
。