На самом деле мой скрипт работает должным образом (разбивает строку по URL и сохраняет другой текст) и помещает в список:
import re
s = 'This is my tweet check it out http://www.example.com/blah and http://blabla.com'
result = re.split(r'(https?://\S+)', s)
print(result)
Вывод:
['This is my tweet check it out ', 'http://www.example.com/blah', ' and ', 'http://blabla.com', '']
Теперь я застрял в другой проблеме: иногда я получаю URL-адреса в виде html, или смешанный текст + html, и URL-адреса выглядят так:
<a href="http://www.example.com/full/path/to/product/">https://shorted.com/FJAKS</a>
href
с полным URL-адресом, значение между <a>...</a>
the сокращено url.
Таким образом, я могу получить такую строку для манипуляции:
s = 'This is an html link: <a href="http://www.example.com/full/path/to/product/">https://shorted.com/FJAKS</a> and this is a text url: http://blabla.com'
Я хотел бы получить те же логики c для моей функции, но если я использую:
result = re.split(r'(https?://\S+)', s)
print(result)
, как раньше, я получаю это (НЕПРАВИЛЬНО):
['This is an html link: <a href="', 'http://www.example.com/full/path/to/product/">https://shorted.com/FJAKS</a>', ' and this is a text url: ', 'http://blabla.com', '']
Но я хотел бы получить ситуацию, подобную этой (если это HTML, получить все теги a
):
Ожидаемый результат:
['This is an html link: ', '<a href="http://www.example.com/full/path/to/product/">https://shorted.com/FJAKS</a>', ' and this is a text url: ', 'http://blabla.com', '']