у меня есть такие строки
str1 = "https://web2.some.com/hbh/productImages?itemId=5986546" str2 = "https://web2.some.com/hbh/productImages?itemId=5986546231" str3 = "https://web2.some.com/hbh/productImages?itemId=22432"
как мне добавить только последние цифры "5986546", "5986546231", "22432" в другую строку.
Я имею в виду, мне просто нужно как-то удалить "https://web2.some.com/hbh/productImages?itemId=" часть из строк.И длина на это число может меняться конечно.
"https://web2.some.com/hbh/productImages?itemId="
Использовать регулярное выражение:
import re str1 = "https://web2.some.com/hbh/productImages?itemId=5986546" str2 = "https://web2.some.com/hbh/productImages?itemId=5986546231" str3 = "https://web2.some.com/hbh/productImages?itemId=22432" regex = re.compile(r'(\d+?)$') l = regex.findall(str1) print(l)
Вывод:
C:\Users\Desktop>py x.py ['5986546']
Кроме того, приведенный ниже код вернет все сразу:
all_strings = ''.join( [str1,str2,str3]) regex = re.compile(r'(\d{2,})') l = regex.findall(all_strings) print(l)
Выход:
C:\Users\Desktop>py x.py ['5986546', '5986546231', '22432']
Используйте функцию разделения на строку.
str1.split("https://web2.some.com/hbh/productImages?itemId=")[-1]
Поскольку ваши URL не содержат более одного =, вы можете использовать str.split
=
str.split
id = str1.split('=')[-1] # or [1] in this case no diff
Для одного параметра вы можете использовать urllib.parse из стандартной библиотеки:
urllib.parse
from urllib.parse import urlparse str1 = "https://web2.some.com/hbh/productImages?itemId=5986546" item1 = urlparse(str1).query.split('=')[-1] # '5986546'
Для нескольких параметров вы можете создать словарь с помощью urllib.parse_qs:
urllib.parse_qs
from urllib.parse import urlparse, parse_qs str2 = "https://web2.some.com/hbh/productImages?itemId=5986546&somevar=5" args = parse_qs(urlparse(str2).query) item2 = args['itemId'] # '5986546'