-2

我以前从未使用过正则表达式,我被要求从 URL 中删除该方案。这将使 URL 从http://www.foo.com转换为 //www.foo.com。

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

感谢您提供的任何帮助。

4

2 回答 2

3

你可以用基本的字符串操作来做到这一点,我会推荐它而不是正则表达式。

但是,如果您坚持使用正则表达式,这里有一个正则表达式,如果与您正在使用的任何语言的正则表达式替换结合使用,它将执行此操作:

^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为不区分大小写的匹配添加一个标志。

这是一个关于正则表达式的好教程网站:http ://www.regular-expressions.info/

于 2013-07-11T13:22:33.493 回答
0

下面是 PHP 中的一个示例:

 <?php

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

 print "{$url}\n";
 ?>
于 2013-07-11T13:25:36.777 回答