Печать имени группы и соответствующих данных из текста

#regex #python-3.x

#регулярное выражение #python-3.x

Вопрос:

Я написал шаблон регулярных выражений для своих данных с помощью regex101.com .

 regex=r"(?P<tag_name>w ), {(('w ': '(w |w -d)')?,?s?('w ': '(w |d.d{1,})')?)?}, (?P<text>[w .,] )"
  

Данные имеют следующий тип в sample.txt :

 tag1, {'id': 'line_1', 'Prob': '0.96'}, None 
tag2, {'a_id': 'aid'}, None 
tag3, {}, John 
x, {},   
tag3, {}, Doe 
  

Теперь я хочу, чтобы желаемый результат был сохранен в текстовом файле следующим образом:

     Line_number: line_1
    <group_name_tag1>: None
    <group_name_tag3>: John
    <group_name_tagx>: 
    <group_name_tag3>: Doe
  

Я попробовал следующее

 import re
regex=r"(?P<tag_name>w )?,s({('id':s'(?P<Line_Number>w )',s'Prob':s'(d.d{1,}|w )')?},)?([w .] )"
temp=[]
with open("sample.txt", "r") as ins:

    for line in ins:
        temp.append(re.findall(regex, line, re.I))
  

Но не получается желаемый результат

Комментарии:

1. Почему <group_name_tag2>: None этого нет в выходных данных?

2. {'a_id': 'aid'} бесполезно.

3. Если это упрощает его использование, я могу удалить его вручную

4. Вы можете использовать это регулярное выражение: regex101.com/r/aFBwtU/1