Во-первых, мне не очень нравится, как вводится информация.Скотт прав в своих комментариях в том, что это должно быть проанализировано по-другому.Но, оставив это в стороне, мы можем попытаться решить проблему следующим образом: вы, вероятно, захотите использовать позитивный взгляд в регулярном выражении.В вашей ситуации мы можем использовать его для сопоставления с определенной частью текста, если определенное слово произошло непосредственно перед ним.Вы можете добавить положительный вид сзади с (? <= Texthere), за которым следует исходная строка регулярного выражения.</p>
Если мы хотим найти все значения для веса:
import re
sample_inputs = ['"weight","156.5","height","6.3","max","146"',
'"weight","122.1","height","4.1","max","116"']
search_string = r"(?<=\"weight\",) *\"*(\d+.\d+)"
compiled_string = re.compile(search_string)
results = []
for sample_input in sample_inputs:
results.append(re.findall(compiled_string, sample_input))
print(results) # >>> [['156.5'], ['122,1']]
Объяснение строки поиска:
(?<=\"weight\",)
является положительным взглядом сзади и будет искать "weight",
(включая кавычки)
*\"*(\d+.\d+)
найдет от 0 до неограниченного пробела, за которым следует кавычка (вводная кавычка для вашего номера), а затем совпадет с фактическим числом в группе 1.