#python #replace
#python #заменить
Вопрос:
У меня есть список, в котором есть значения URL, такие как:
http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg
Как я могу изменить _s
в конце на _m
для всех вхождений?
Ответ №1:
Попробуйте это:
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg"
str = str.replace("_s","_m")
Если вы хотите быть уверены, что изменена только часть las, и вы знаете, что все это .jpg
файлы, которые вы можете использовать:
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg"
str = str.replace("_s.jpg","_m.jpg")
Чтобы дать больше контекста и избежать изменений в середине URL.
Комментарии:
1. 1 для дополнительной проверки контекста. Здесь может быть полезен
.rreplace
метод.
Ответ №2:
Или, если вы хотите иметь возможность сделать это для любого расширения файла и убедиться, что ничего в строке не изменено, за исключением последней части.
import re
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg"
re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.png"
re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.gif"
re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.zip"
re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
Вывод:
>>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg"
>>> re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.jpg'
>>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.png"
>>> re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.png'
>>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.gif"
>>> re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.gif'
>>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.zip"
>>> re.sub("(.*)_s(.[a-z0-9]{1,4})$", r"1_m2", str)
'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.zip'