आप एक डोम/HTML पार्स करने पुस्तकालय के साथ दस्तावेज़ को लोड कर सकते हैं (html5lib देखें), सभी पाठ नोड्स हड़पने, उन्हें एक नियमित रूप से मिलान के अभिव्यक्ति और इस तरह के रूप में एक PCRE का उपयोग कर उसके चारों ओर एंकर के साथ यूआरआई की एक regex प्रतिस्थापन के साथ पाठ नोड्स की जगह:
/(https?:[;\/?\\@&=+$,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%][\;\/\?\:\@\&\=\+\$\,\[\]A-Za-z0-9\-_\.\!\~\*\'\(\)%#]*|[KZ]:\\*.*\w+)/g
मैं काफी यकीन है कि आप के माध्यम से कोड़े और कहा कि यह करता है उपयोगिता के कुछ प्रकार प्राप्त कर सकते हैं हूँ, मैं हालांकि मेरे सिर के ऊपर से किसी के बारे में नहीं सोच सकता।
संपादित करें: यहाँ जवाब उपयोग करके देखें: एक स्ट्रिंग पर 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)
कॉल urlify2 और मुझे लगता है कि अगर आप एक डोम वस्तु के साथ काम नहीं कर रहे हैं कि यह है।
स्रोत
2009-11-13 06:43:18
हालांकि कोई यह मान लेगा कि आप * HTML बना रहे हैं, क्योंकि सादे पाठ में एक लिंक बनाम यूआरएल का कोई विशेष संकेत नहीं है। तो आप 'http://blah.com/page/ref/something?param=foo 'पर अपने सादे पाठ में पाए गए' http: //blah.com/page/ref/something? Param = foo' को कन्वर्ट करेंगे? – PaulMcG
हां, फिर इसे एक HTML दस्तावेज़ – hoju
में डाला जाएगा, अब तक यूआरएल से मेल खाने पर ध्यान केंद्रित किया गया है। लिंक के साथ इसे बदलने के बारे में कैसे? – hoju