我如何使用QString::replace检测字符串中的 URL 并将它们替换为 HTML 链接,就像这样......
[...].replace(QRegExp("???"), "<a href=\"\\1\">\\1</a>")
Run Code Online (Sandbox Code Playgroud)
论证应该QRegExp是什么?URL 的结尾应由出现的空白字符(例如空格、\r 或 \n)或字符串的结尾来表示。
正则表达式应该相当简单:http://、https://、ftp:// 等,后跟一个或多个非空白字符,应转换为链接。
编辑:这是我使用的解决方案...
[...].replace(QRegExp("((?:https?|ftp)://\\S+)"), "<a href=\"\\1\">\\1</a>")
Run Code Online (Sandbox Code Playgroud)
我想(?:https?|ftp)://\\S+会为你做的。
不要忘记,这可能会匹配一些无效的 URL,但这可能符合您的目的。(仅匹配语法上有效的 URL 的正则表达式构建起来非常复杂,不值得付出努力。)