Отделить id от url
В регулярках вообще не соображаю даже самое элементарное не могу сделать.Помогите отделить id от url есть список с адресами страниц где id могут быть либо цифры либо никнеймы.
["https://vk.com/phrodionov" , "https://vk.com/id4308" , "https://vk.com/id4924"]
Ответы (1 шт):
Автор решения: DiMithras
→ Ссылка
Действительно непонятно зачем тут регулярка, но если хочется регулярку, то вот:
(?<=vk\.com\/).*
.*— забираем любые символы, т.е. id'шники с цифрами и текстовые.
Можно использовать.+quantifier, тогда ссылки без id, т.е. просто "vk.com/" в результат не пойдут(?<=vk\.com\/)— positive lookbehind, т.е. регулярка сработает только если перед тем что мы хотим найти стоит "vk.com/"\.и\/— в ссылку vk.com/ необходимо добавить escape character, т.е. обратный слеш, т.к. точка и прямой слеш являются частью синтаксиса регулярных выражений
Update
Из комментариев:
Она все ровно выдает с id
pattern=r'(?<=vk\.com\/)((?:id)(\d+)|.*)'
arr = ["https://vk.com/phrodionov" , "https://vk.com/id4308" , "https://vk.com/id4924"]
for x in arr:
print([x for x in re.search(pattern, x).groups() if x != None][-1])
Вывод:
phrodionov
4308
4924