kkk981071965 2021-05-25 14:28 采纳率: 100%
浏览 39
已采纳

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 “:” (.+?)“     匹配反馈数

感激不尽、万分感激

  • 写回答

3条回答 默认 最新

  • WuKongSecurity@BOB Python领域优质创作者 2021-05-25 15:42
    关注

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

    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)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?