PYTHON: как мне захватить определенную часть строки?

#python

#python

Вопрос:

У меня есть следующая строка: «https://www.instagram.com/paula.mtzm /» Я хочу поместить пользователя «paula.mtzm» в переменную. Кто-нибудь знает, как это сделать? Может быть, вы можете каким-то образом удалить часть строки, например «https://www.instagram.com /» а затем удалить последний символ «/» ?

Комментарии:

1. Обычный метод — использовать регулярное выражение; смотрите re модуль: docs.python.org/3/library/re.html

2. @alkasm: urlparse вероятно, здесь лучшее решение . В худшем случае вам просто нужно убрать обратную косую черту после синтаксического анализа. Регулярное выражение всегда должно быть последним вариантом, после того как простые строковые методы и выделенные анализаторы подведут вас.

3. @ShadowRanger Я согласен, особенно для этого случая. Что касается названия вопроса, то наиболее общим ответом является регулярное выражение. Но да, хороший вызов — синтаксический анализ URL-адресов в регулярных выражениях не идеален.

Ответ №1:

 "https://www.instagram.com/paula.mtzm/".split(".com/")[-1].replace("/", "")
  

Это должно делать то, что вы хотите. Эффективно он разбивает строку на список с помощью разделителя .com/ , получает последний элемент этого списка ( "paula.mtzm/" ) и, наконец, удаляет все оставшиеся / s

Я не уверен, насколько специфичен ваш вариант использования, поэтому я не знаю, насколько это подходит в целом.

Ответ №2:

На самом деле это довольно просто:

Строки индексируются в Python точно так же, как список. Итак:

 string = "potato"
print string[0] #this will print "p" to the console
#we can 'slice' in the index too
print string[0:3] #this will print "pot" to the console
  

Итак, для вашей конкретной проблемы вы могли бы выполнить поиск кода для 3-го
переслать косую черту и захватить все после этого.

Если вы всегда знаете веб-адрес, вы можете просто начать свой индекс с конца адреса и с того места, где начинается пользователь:

 string = "https://www.instagram.com/paula.mtzm/"
string_index = 26 # the 'p' in paula begins here
user_name = string[string_index:string.len]
print user_name #outputs paula.mtzm
  

Комментарии:

1. Я сомневаюсь, что постер искал ответ в python 2, поскольку он не поддерживается уже чуть меньше года.