正则表达式删除网址中的字符串

时间:2018-09-26 17:40:50

标签: php regex

我有一个URL,我在其中传递基本身份验证,例如:

https://user:pass@dev.google.com

删除最后一个 / @ 之间的所有内容的正则表达式是什么?

示例:

https://user:pass@dev.google.com

将成为:

https://dev.google.com

我尝试过一些正则表达式,但是我的知识仍然是该主题的基础。

我将使用PHP函数进行替换。

2 个答案:

答案 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;