2010-07-23 140 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