2010-07-23 137 views
3

如何使用QString::replace检测中的URL字符串与HTML链接替换它们,就像这样......如何使用正则表达式来替换Qt中HTML链接的URL?

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

应该采取什么参数QRegExp是什么? URL的结尾应该用空白字符(例如空格,\ r或\ n)或字符串结尾的出现来表示。

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


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

[...].replace(QRegExp("((?:https?|ftp)://\\S+)"), "<a href=\"\\1\">\\1</a>") 

回答

4

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

不要忘记,这可能会匹配一些无效的URL,但这可能适合您的目的。 (只匹配语法上有效的URL的正则表达式构造起来会非常复杂,不值得花费精力。)

+0

谢谢你,这很好。你是正确的,匹配可能无效的网址是好的,我需要这个。 – 2010-07-23 18:49:33