Qt QRegExp用<a> Anchored URLs</a>替换字符串中的所有网址

时间:2013-01-31 19:12:45

标签: qt qregexp

给定一个QString,其中包含未知数量的URL ......

如何使用QRegExp仅围绕URL部分包装HTML锚标记(URL本身作为可点击标签)。

e.g。

input: "this is www.cnn.com, that is https://www.mybank.com"

output: "this is <a href="www.cnn.com">www.cnn.com</a>, that is <a href="https://www.mybank.com">https://www.mybank.com</a>

2 个答案:

答案 0 :(得分:1)

确定。得到了它。

QRegExp regExp("((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-]*)?\\??(?:[\\-\\+=&;%@\\.\\w]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)");

QString result = myOriginalString.replace(regExp, "<a href='\\1'>\\1</a>" );

我会在这里留下问题/答案,以便谁可能对此感兴趣。

答案 1 :(得分:0)

我不会为你写你的正则表达式。但是,Qt 4与a tool that helps a LOT with writing one打包在一起,你也可以自己编译。

或者,您的Qt安装中应该包含一组示例和演示(在Windows上,转到开始 - &gt; Qt示例和演示)。启动示例应用程序并导航到工具(第二页) - &gt;常用表达。单击“启动”并按照说明进行操作。

使用该演示可帮助您编写一个,遵循the documentation中的指南。特别是,请查看捕获文本,通配符匹配和字符集部分。

相关问题