给定一个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>
答案 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中的指南。特别是,请查看捕获文本,通配符匹配和字符集部分。