当前位置:  开发笔记 > 编程语言 > 正文

正则表达式匹配所有有效链接

如何解决《正则表达式匹配所有有效链接》经验,为你挑选了1个好方法。

关于这个问题:http://stackoverflow.uservoice.com/pages/general/suggestions/103227-parser-does-not-match-all-valid-urls这个正则表达式是否合适,还是需要进行改进,如果它需要精炼怎么样?

\b(?P(?:.*?://)[\w\-\_\.\@\:\/\?\#\=]*)\b

localshred.. 13

即使问题含糊不清,我也会尝试回答可能的解决方案.

可能的意图1:匹配给定文件中的任何URL(替换):

/^([^:]+):\/\/([-\w._]+)(\/[-\w._]\?(.+)?)?$/ig

以上内容应该匹配几乎所有的URL格式,以及以下捕获的组:

0 => entire match
1 => protocol (eg. http, ftp, git, ...)
2 => hostname (eg. www.stackoverflow.com)
3 => requested_file_path (eg. /images/prod/1/4/success.gif)
4 => query_string (eg. param=1¶m2=2¶m3=3)

可能的意图2:获取有关当前请求URL的详细信息

为了获取有关URL的详细信息,例如协议,主机名,请求的文件路径和查询字符串,最好使用语言/对象方法来收集结果.在php中,您可以使用函数调用获取所有上述信息:

$protocol = $_SERVER['SERVER_PROTOCOL']; // HTTP/1.0
$host = $_SERVER['HTTP_HOST']; // www.stackoverflow.com
$path_to_file = dirname($_SERVER['SCRIPT_NAME']);
$file = basename($_SERVER['SCRIPT_NAME']);
$query_string = $_SERVER['QUERY_STRING'];

希望这有助于任何方式.



1> localshred..:

即使问题含糊不清,我也会尝试回答可能的解决方案.

可能的意图1:匹配给定文件中的任何URL(替换):

/^([^:]+):\/\/([-\w._]+)(\/[-\w._]\?(.+)?)?$/ig

以上内容应该匹配几乎所有的URL格式,以及以下捕获的组:

0 => entire match
1 => protocol (eg. http, ftp, git, ...)
2 => hostname (eg. www.stackoverflow.com)
3 => requested_file_path (eg. /images/prod/1/4/success.gif)
4 => query_string (eg. param=1¶m2=2¶m3=3)

可能的意图2:获取有关当前请求URL的详细信息

为了获取有关URL的详细信息,例如协议,主机名,请求的文件路径和查询字符串,最好使用语言/对象方法来收集结果.在php中,您可以使用函数调用获取所有上述信息:

$protocol = $_SERVER['SERVER_PROTOCOL']; // HTTP/1.0
$host = $_SERVER['HTTP_HOST']; // www.stackoverflow.com
$path_to_file = dirname($_SERVER['SCRIPT_NAME']);
$file = basename($_SERVER['SCRIPT_NAME']);
$query_string = $_SERVER['QUERY_STRING'];

希望这有助于任何方式.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有