Regex 要删除URL的方案(http:)的正则表达式

Regex 要删除URL的方案(http:)的正则表达式,regex,Regex,我以前从未使用过regex,有人要求我从URL中删除该方案。这样就可以将URL从转换为//www.foo.com 我只是想知道这是否可能?并且知道是否有人知道任何教程或网站,这将帮助我作为一个绝对的初学者 感谢您提供的任何帮助。您可以通过基本的字符串操作来实现这一点,我建议您不要使用正则表达式 但是,如果您坚持使用正则表达式,这里有一个正则表达式,如果与您使用的任何一种语言的正则表达式相结合,它都可以做到这一点: ^http: ^\ / | \ / | `- Match this stri

我以前从未使用过regex,有人要求我从URL中删除该方案。这样就可以将URL从转换为//www.foo.com

我只是想知道这是否可能?并且知道是否有人知道任何教程或网站,这将帮助我作为一个绝对的初学者


感谢您提供的任何帮助。

您可以通过基本的字符串操作来实现这一点,我建议您不要使用正则表达式

但是,如果您坚持使用正则表达式,这里有一个正则表达式,如果与您使用的任何一种语言的正则表达式相结合,它都可以做到这一点:

^http:
^\   /
| \ /
|  `- Match this string literally
|
`- Match at start of string
如果您也要删除
https:
,它将如下所示:

^https?:
^\  /^^^
| \/ |||
| |  ||`- Literally match `:`
| |  |`- Previous is optional (literal s)
| |  `- Literally match s
| `- Match this string literally
|
`- Match at start of string
所有这些都假设您只检查准确的URL,如果您想检查字符串中的任何位置,您可以将
^
锚定(字符串的开始)替换为
\b
,它用于单词边界:

\bhttps?:
\/\  /^^^
|  \/ |||
|  |  ||`- Literally match `:`
|  |  |`- Previous is optional (literal s)
|  |  `- Literally match s
|  `- Match this string literally
|
`- Word boundary (typically whitespace, but also `][` and so on
使正则表达式将与该模式匹配的所有内容替换为“”(空字符串)。我建议为不区分大小写的匹配添加一个
I
标志


这里有一个很好的正则表达式教程网站:

这里有一个PHP示例:

 <?php

 $url = 'http://www.foo.com';
 $url = preg_replace('/^http:/i', '', $url);

 print "{$url}\n";
 ?>


是什么让你想到使用正则表达式的?URL解析器要简单得多。您使用的是什么语言?为什么不做一个子串呢?是的,这是可能的。如果你以前从未使用过正则表达式,那么你需要学习。你的问题很简单——在网上搜索——有数百万个例子。哦,实际的细节将取决于语言。这是为了工作,他们要求这样做,即使在解释了我不知道正则表达式和有更简单的方法来做到这一点。如果您能提供任何信息来帮助我,我将非常感谢您,不必直接给您答案,请查看并“从URL中删除该方案”-可能需要替换的信息有很多,不仅仅是
http
。是的,但问题是关于
http
(见标题)。我包括了
https
,因为它是一个“近亲”。
http
似乎是作为一个例子提供的-参见标题。他的例子提到输出应该是
//www.foo.com
,这将使您提供的URL中的约一半方案无效。在他提供更多信息之前,我假设这是针对http(可能还有https)的。你的观点当然是正确的,我已经在评论中要求他澄清。顺便说一句,除了http和https之外,还有哪些URL方案使用
//www.foo.com
来维护当前的协议?我将再次添加这一点-可能需要替换一些URL方案,而不仅仅是
http