import re


def str_to_dict(input_list: list) -> list:
    """
    Analyze a list of strings and return a list of dict with all found fields
    example:
        from:
            ['eyr:2028 iyr:2016 byr:1995 ecl:oth pid:543685203 hcl:#c0946f hgt:152cm cid:252']
        to:
            [{'byr': '1995', 'iyr': '2016', 'eyr': '2028', 'hgt': '152cm', 'hcl': '#c0946f', 'ecl': 'oth', 'pid': '543685203', 'cid': '252'}]
    """

    fields = ('byr', 'iyr', 'eyr', 'hgt', 'hcl', 'ecl', 'pid', 'cid')
    list_of_dict = list()

    for info in input_list:
        tmp_dict = dict()
        for field in fields:
            search = re.search(rf"{field}:([a-z0-9#]+)", info)
            if search:
                tmp_dict[field] = search.group(1)
        if len(tmp_dict) >= 7:
            list_of_dict.append(tmp_dict)

    return list_of_dict