【发布时间】:2014-10-27 06:04:53
【问题描述】:
这是代码
preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1">$1</a>', $s);
这里的问题是它没有检测到这个 url
http://localhost:88/xyz%20abc/abc/Result%20Publication%20Page.php
虽然它检测到第一个 %20,但它没有检测到 url 末尾的其他 %20。
抱歉这个菜鸟问题。我搜索了但没有得到具体的答案。
提前致谢。
【问题讨论】:
-
每个要匹配的 url 是否以
https?://开头还是必须是可选的? -
如果要匹配url可以使用
(https?://)?\S+ -
@Fede 与
(https?://)?\S+匹配almost everything,这就是我问的原因:) -
@Jonny5 是的,我知道,但 OP 使用它
标签: regex url preg-replace friendly-url