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条回答 默认 最新

  • IT.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条)

报告相同问题?

悬赏问题

  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab