【发布时间】:2013-05-05 02:26:17
【问题描述】:
我需要帮助创建一个匹配所有网址的正则表达式,例如,请不要将问题作为重复项关闭,因为我一直在寻找我需要的东西很长时间,而我所看到的答案都没有给出解决我的问题的答案。
网站.com
www.website.com
还有任何尾随
www.website.com/path-to-something
我正在编写一些可以缩短任何 url 的代码,但要这样做,首先我需要将它们全部匹配。
谢谢
【问题讨论】:
-
到目前为止你的努力是什么?
-
我已经尝试了一大堆不同的表达式,Regex 并不是我的强项... (http://[^ ]+) 这就是我现在所拥有的,但它只是匹配一种。
-
@Spudley:不要这么认为,因为
website.com不是一个有效的 URL 并且用例不同。 OP 想要搜索匹配的基本 URL。 -
@Aquillo - 其他问题的一些答案可以正常工作。但实际上,有效 URL 和
website.com之间的唯一区别是使协议部分在正则表达式中是可选的。 -
使用下面的正则表达式,它更通用:preg_match_all(@((((ht)|(f))tp[s]?://)|(www\.))([az] [-a-z0-9]+\.)?([az][-a-z0-9]+\.)?[az][-a-z0-9]+\.[az]+[/ ]?[a-z0-9._\/~#&=;%+?-]*@si', $input, $result);