Как удалить ссылку из текста в python?

Пытаюсь удалить ссылки, используя регулярные выражения. Проблема в том, что моя регулярка отрезает не только ссылку, но и беспробельную часть после неё (которую я хочу оставить).

Регулярное выражение:

re.sub(r"http://\S+|https://\S+", "", text)

Пример:

"https://vk.com/wall505680146_2821,id505680146,социальные сети"
" сети,

Ответы (2 шт):

Автор решения: gil9red

Регулярки тут не нужны:

url = "https://vk.com/wall505680146_2821,id505680146,социальные сети"
print(url.split(',')[-1])
→ Ссылка
Автор решения: Wiktor Stribiżew

Используйте

import re
s = "https://vk.com/wall505680146_2821,id505680146,социальные сети"
print( re.sub(r"https?://[^,\s]+,?", "", s) )
# => id505680146,социальные сети

См. пример работы кода и регулярного выражения.

https?://[^,\s]+,? находит

  • https?:// - http:// или https://
  • [^,\s]+ - один и более символов, отличных от пробельных символов и запятой
  • ,? - необязательная запятая.
→ Ссылка