Как извлечь тексты и внести их в словарь?

#python #string

Вопрос:

У меня есть такая строка:

 s='Domaine de la Charbonniere 2016(B-L2-087-AB-356 ) x3 | Domaine de la 2016( D-L2-021-AB-647) x2'
 

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

 {'B-L2-087-AB-356':3, 'D-L2-021-AB-647':2}
 

Ключ-это код, а значение-это количество.

Большое спасибо!

Ответ №1:

Вы можете использовать re модуль для этой задачи:

 import re

s = "Domaine de la Charbonniere 2016(B-L2-087-AB-356 ) x3 | Domaine de la 2016( D-L2-021-AB-647) x2"


out = {k: int(v) for k, v in re.findall(r"(s*(.*?)s*).*?x(d )", s)}
print(out)
 

С принтами:

 {'B-L2-087-AB-356': 3, 'D-L2-021-AB-647': 2}