Comment puis-je utiliser QString::replace
pour détecter les URL dans une chaîne et les remplacer par un lien HTML, comme ...Comment utiliser regex pour remplacer des URL avec un lien HTML dans Qt?
[...].replace(QRegExp("???"), "<a href=\"\\1\">\\1</a>")
Que doit faire l'argument QRegExp
être? La fin d'une URL doit être indiquée par l'occurrence d'un caractère d'espace (tel que l'espace, \ r ou \ n) ou la fin de la chaîne. La regex devrait être assez simple: http: //, https: //, ftp: //, etc, suivi d'un ou plusieurs caractères non-espaces, devrait être converti en un lien.
EDIT: Ceci est la solution ... je
[...].replace(QRegExp("((?:https?|ftp)://\\S+)"), "<a href=\"\\1\">\\1</a>")
Merci, ça marche très bien. Vous avez raison, la correspondance avec des URL potentiellement invalides est OK pour où j'en ai besoin. –