я имею:
- список, содержащий определенное количество кодов
list1 = ['A1', 'A2.1', 'A2.2','A2.3','A2.4','B1.1','B1.2','B1.3','B1.4','B1.5','B1.6','B1.7','B1.8a','B1.8b','B2.1','B2.2','B2.3','B2.4','B2.5','B2.6','B2.7','B2.8','B2.9','B2.10','B2.11','B2.12','B2.13','B2.14','B2.15','B2.16','B2.17','B2.18','B2.19','B2.20a','B2.20b','B2.20c']
(это часть всего списка) 2. и эта строка,
string1 = "A1Contributo pubblico1559.020• 559.020,00A2.2Cofinanziamentoprivato in denaro122.500• 22.500,00A2.4Entrate generate dalprogetto00• 0,00B2.20aLocali: locazioni eutenze00• 0,00B2.20bImmobili:ammortamenti00• 0,00B2.20cImmobili:manutenzioneordinaria00• 0,00B2.21Attrezzature: noleggi eleasing00• 0,00B2.22Attrezzature:manutenzioni ordinarie00• 0,00B2.23Attrezzature:ammortamenti00• 0,00B2.1Docenza (dipendenti ecollaboratori)00• 0,00B2.14Viaggi di studio deipartecipanti00• 0,00B2.18Materiali diconsumo/materialididattici00• 0,00E1.1UCS ora formazione5.94085• 504.900,00E1.2UCS allievo120403,5• 48.420,00E1.3Costi acofinanziamentoprivato150150• 22.500,00E1.4UCS ora/utente(individuale)15038• 5.700,00"
Я хочу проверить, содержатся ли элементы в списке1 в строке1 и их положение внутри строки.
Моя конечная цель - извлечь из строки относительную сумму для каждого кода, например, для кода "A1" -> 559.020,00, для кода "A2.2" -> 22.500,00 и так далее.
Сначала я попробовал с простым:
for code in list1:
stringPosition = re.search(code, string1)
но с этим решением у меня проблема с такими кодами, как B2.2, B2.20, потому что я нахожу ту же позицию.
Поэтому я попытался понять, как искать точный код внутри строки. Я видел эти сообщения:
Как проверить наличие ТОЧНОЕ слово в строке в python
Соответствие точной фразе внутри строки в Python
Regex находит целую подстроку между скобками, содержащими точную подстроку
Как искать слово (точное совпадение) внутри строки?
и я попытался применить предложенные решения (например, используя r'\w' + (код) + r'\w'), но безуспешно.
моя первая попытка:
for code in list1:
stringPosition = re.search(code, string1)
if stringPosition != None:
print(code, stringPosition)
list2.append(stringPosition)
Заранее спасибо за любое предложение