代码之家  ›  专栏  ›  技术社区  ›  Jake Petroules

如何使用regex将URL替换为qt中的HTML链接?

  •  3
  • Jake Petroules  · 技术社区  · 14 年前

    如何使用 QString::replace 检测字符串中的URL并用HTML链接替换它们,就像这样…

    [...].replace(QRegExp("???"), "<a href=\"\\1\">\\1</a>")
    

    争论应该是什么 QRegExp 是吗?URL的结尾应以出现空白字符(如空格、\r或\n)或字符串的结尾表示。

    regex应该相当简单:http://、https://、ftp://等,后跟一个或多个非空白字符,应该转换为链接。


    编辑:这是我使用的解决方案…

    [...].replace(QRegExp("((?:https?|ftp)://\\S+)"), "<a href=\"\\1\">\\1</a>")
    
    1 回复  |  直到 14 年前
        1
  •  4
  •   David Z    14 年前

    我想 (?:https?|ftp)://\\S+ 会为你做的。

    不要忘记,这可能会匹配一些无效的URL,但这对于您的目的来说可能是正常的。(只匹配语法上有效的URL的regex构造起来非常复杂,不值得这样做。)