Я пытаюсь заменить что-то в строке в python, и у меня возникли некоторые проблемы. Вот что я хотел бы сделать.
Для данного комментария в моем сообщении:
"here are some great sites that i will do cool things with! https://stackoverflow.com/it's a pig & http://google.com"
Я бы хотел использовать python для создания таких строк:
"here are some great sites that i will do cool things with! <a href="http://stackoverflow.com">http%3A//stackoverflow.com</a> & <a href="http://google.com">http%3A//google.com</a>
Вот что у меня пока ...
import re
import urllib
def getExpandedURL(url)
encoded_url = urllib.quote(url)
return "<a href=\"<a href="+url+"\">"+encoded_url+"</a>"
text = '<text from above>'
url_pattern = re.compile('(http.+?[^ ]+', re.I | re.S | re.M)
url_iterator = url_pattern.finditer(text)
for matched_url in url_iterator:
getExpandedURL(matched_url.groups(1)[0])
Но это то, где я застрял. Ранее я видел такие вещи, как здесь: Регулярные выражения, но для записи в совпадении , но, безусловно, должен быть лучший способ, чем перебирать каждое совпадение и выполнять замену позиции на них. Сложность здесь в том, что это не прямая замена, но мне нужно сделать что-то конкретное с каждым совпадением перед его заменой.