Удаление части строки и добавление к другой - PullRequest
0 голосов
/ 04 декабря 2018

у меня есть такие строки

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=" часть из строк.И длина на это число может меняться конечно.

Ответы [ 4 ]

0 голосов
/ 04 декабря 2018

Использовать регулярное выражение:

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']
0 голосов
/ 04 декабря 2018

Используйте функцию разделения на строку.

str1.split("https://web2.some.com/hbh/productImages?itemId=")[-1]
0 голосов
/ 04 декабря 2018

Поскольку ваши URL не содержат более одного =, вы можете использовать str.split

id = str1.split('=')[-1] # or [1] in this case no diff
0 голосов
/ 04 декабря 2018

Для одного параметра вы можете использовать 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:

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...