Sie das Dokument laden kann mit einem DOM/HTML-Parsing-Bibliothek (siehe html5lib), alle Textknoten greifen, passen sie gegen einen regelmäßigen Ausdruck und die Textknoten mit einem regex Ersatz der URI mit Ankern um es ersetzen eine PCRE mit wie:
/(https?:[;\/?\\@&=+$,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%][\;\/\?\:\@\&\=\+\$\,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%#]*|[KZ]:\\*.*\w+)/g
ich bin mir ziemlich sicher, dass Sie geißeln durch und irgendeine Art von Nutzen finden, das dies tut, ich Ich kann mir allerdings nichts vorstellen.
Edit: Versuchen Sie, die Antworten hier mit: How do I get python-markdown to additionally "urlify" links when formatting plain text?
import re
urlfinder = re.compile("([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}|((news|telnet|nttp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+):[0-9]*)?/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*[^]'\\.}>\\),\\\"]")
def urlify2(value):
return urlfinder.sub(r'<a href="\1">\1</a>', value)
Anruf urlify2 an einer Schnur, und ich denke, dass es, wenn Sie nicht mit einem DOM-Objekt zu tun ist.
Man würde aber annehmen, dass Sie * HTML * erstellen, da Klartext keine spezielle Notation eines Links im Vergleich zu einer URL hat. Also würden Sie 'http: //blah.com/page/ref/something?param=foo' in Ihrem Text in 'http://blah.com/page/ref/something?param=foo' konvertieren, ja? – PaulMcG
ja, es wird dann in ein HTML-Dokument eingefügt – hoju
die Antworten bisher auf die Übereinstimmung mit der URL konzentriert haben. Wie wäre es, es durch den Link zu ersetzen? – hoju