我有一个URL,我在其中传递基本身份验证,例如:
https://user:pass@dev.google.com
删除最后一个 / 至 @ 之间的所有内容的正则表达式是什么?
示例:
https://user:pass@dev.google.com
将成为:
https://dev.google.com
我尝试过一些正则表达式,但是我的知识仍然是该主题的基础。
我将使用PHP函数进行替换。
答案 0 :(得分:1)
preg_replace('#/[^/]*@#', '/', $url);
故障:
/
与斜杠匹配[^/]*
匹配一系列非斜杠字符@
与@
字符匹配。因此,这匹配了从/
到下一个@
的所有内容,并且它们之间没有/
。然后仅用斜杠代替。
但是,最好使用parse_url()
而不是使用正则表达式进行临时解析。
答案 1 :(得分:1)
使用parse_url()
可以完成工作:
$url = 'https://user:pass@dev.google.com';
$scheme = parse_url($url, PHP_URL_SCHEME);
$host = parse_url($url, PHP_URL_HOST);
print $scheme."://".$host;