Regex替换http和HTTPS链接 [英] Regex to replace http AND https links

查看:20
本文介绍了Regex替换http和HTTPS链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下preg_replace()针对链接的函数:

$link = preg_replace(
    "#http://([S]+?)#Uis", '<a href="http://\1">(link)</a>', 
    $link
);

它可以很好地处理http链接,但显然不能处理https链接。我如何调整它,使其也能与https链接一起工作。

推荐答案

只需在http后添加s?并匹配整个链接,然后使用$0反向引用从替换模式中引用它:

$link = preg_replace(
    "#https?://S+#i", '<a href="$0">(link)</a>', 
    $link
);

请参阅PHP demo

详细信息

  • https?-httphttps
  • ://-文字字符序列
  • S+-一个或多个非空格符号
  • i-不区分大小写修饰符。

注意U修饰符很容易混淆(?会写成??,图案会变长),我建议删除它。

如果模式中没有.s修饰符就没有意义,所以它也是多余的,我建议也删除它。

这篇关于Regex替换http和HTTPS链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆