python正则表达式匹配嵌套的内容

<body>
<font color="blue">历时: 17056 分钟<br>“,” hangupbegtime“:” 2021-05-24 09:44:42“,” hangupendtime“:” 2021-05-25 09:54:06“,” urgeFlag“:”“,” feedbacknum“:” 138“,” className“:”“,” mainsn“:” 20210522274944“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
    <font color="blue">历时: 25 分钟<br>“,” hangupbegtime“:” 2021-05-28 09:52:24“,”                   hangupendtime“:” 2021-05-27 19:34:01“,” urgeFlag“:”“,” feedbacknum“:” 12“,” className“:”“,” mainsn“:” 20210987654321“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
       <font color="blue">历时: 254 分钟<br>“,” hangupbegtime“:” 2021-05-26 09:51:23“,” hangupendtime“:” 2021-05-25 15:33:02“,” urgeFlag“:”“,” feedbacknum“:” 12“,” className“:”“,” mainsn“:” 20210123456789“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
        </font>
    </font>
</font>
</body>

大佬帮忙,写个正则提取下:“历时: 17056 分钟”中间的17056,还有reqrepairtime后面的时间,mainsn后面的号码和feedbacknum后面的数字。 

引号是中文的, ”后面有个空格。

初学者搞了很久,都没理解这种嵌套的,怎么提取,智商跟不上了。

reqrepairtime“:” (.+?)“          时间

*?feedbacknum “:” (.+?)“     匹配反馈数

感激不尽、万分感激

可以使用 .*? 非贪婪匹配后面引号内的所有内容 

import re

str = '''<body>
         <font color="blue">历时: 17056 分钟<br>“,” hangupbegtime“:” 2021-05-24 09:44:42“,” hangupendtime“:” 2021-05-25 09:54:06“,” urgeFlag“:”“,” feedbacknum“:” 138“,” className“:”“,” mainsn“:” 20210522274944“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
         <font color="blue">历时: 25 分钟<br>“,” hangupbegtime“:” 2021-05-28 09:52:24“,”                   hangupendtime“:” 2021-05-27 19:34:01“,” urgeFlag“:”“,” feedbacknum“:” 12“,” className“:”“,” mainsn“:” 20210987654321“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
         <font color="blue">历时: 254 分钟<br>“,” hangupbegtime“:” 2021-05-26 09:51:23“,” hangupendtime“:” 2021-05-25 15:33:02“,” urgeFlag“:”“,” feedbacknum“:” 12“,” className“:”“,” mainsn“:” 20210123456789“,” reqrepairtime“:” 2021-05-24 19:31:29“,” dealtimeinfo“:”
         </font>
         </font>
         </font>
         </body>'''

time = re.findall('历时: ([0-9]+) 分钟', str)
reqrepairtime = re.findall('reqrepairtime“:” (.*?)“', str)
feedbacknum = re.findall('feedbacknum“:” (.*?)“', str)
print(time)
print(reqrepairtime)
print(feedbacknum)

 

感谢

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632