免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2427 | 回复: 0
打印 上一主题 下一主题

python 正则 多行 非贪婪匹配 (求助) [复制链接]

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-12-12 15:46 |只看该作者 |倒序浏览
帖子发错位置了.

请抓到隔壁房间:

http://bbs.chinaunix.net/thread-4291127-1-1.html

请教下:
下文测试代码中, 我多行匹配, 但是匹配到的结果有错误.(用红字标出)
我只想要Total PSS by category:下面几行的内容.


因为有干扰项, 我没办法排除, 请赐教!


  • import re
  • import logging
  • import csv
  • log_level = logging.WARNING
  • # log_level = logging.INFO
  • log_level = logging.NOTSET
  • logging.basicConfig(format='%(asctime)s %(message)s',level=log_level)
  • test_str = '''
  • Total PSS by OOM adjustment:
  •     503,841K: Native
  • Total PSS by category:
  •     366,458K: Native
  •     254,224K: .dex mmap
  •     156,044K: .so mmap
  •      97,988K: Dalvik
  •      97,829K: .apk mmap
  •      83,928K: GL mtrack
  •      66,618K: .oat mmap
  •      56,504K: .art mmap
  •      55,068K: EGL mtrack
  •      49,107K: Unknown
  •      33,957K: Dalvik Other
  •      20,235K: Stack
  •      15,188K: Gfx dev
  •      14,354K: Other mmap
  •       3,805K: .ttf mmap
  •       1,519K: Other dev
  •       1,236K: Ashmem
  •         382K: .jar mmap
  •           0K: Cursor
  •           0K: Other mtrack
  • Total RAM: 2,837,896K (status normal)
  • Free RAM:   945,990K (   86,006K cached pss +   609,816K cached kernel +   250,168K free)
  • Used RAM: 1,707,024K (1,390,932K used pss +   316,092K kernel)
  • Lost RAM:   143,483K
  •      ZRAM:    44,524K physical used for   123,176K in swap (  786,428K total swap)
  • Total PSS by OOM adjustment:
  •     472,309K: Native
  • Total PSS by category:
  •     350,803K: Native
  •     284,120K: .dex mmap
  •     154,923K: .so mmap
  •     132,952K: GL mtrack
  •     109,226K: .apk mmap
  •     109,194K: Dalvik
  •      66,826K: .oat mmap
  •      57,492K: .art mmap
  •      55,068K: EGL mtrack
  •      52,817K: Unknown
  •      35,966K: Dalvik Other
  •      20,268K: Stack
  •      14,475K: Other mmap
  •      13,752K: Gfx dev
  •       3,790K: .ttf mmap
  •       1,509K: Other dev
  •       1,360K: Ashmem
  •         361K: .jar mmap
  •           0K: Cursor
  •           0K: Other mtrack
  • Total RAM: 2,837,896K (status normal)
  • Free RAM:   946,064K (  140,720K cached pss +   723,396K cached kernel +    81,948K free)
  • Used RAM: 1,741,513K (1,428,733K used pss +   312,780K kernel)
  • Lost RAM:   111,666K
  •      ZRAM:    44,524K physical used for   123,160K in swap (  786,428K total swap)
  • '''
  • def get_RAM(match_str):
  •     pattern = re.compile(r'%s *([0-9,]*)K' % match_str)
  •     ram_kb = pattern.findall((test_str).replace(",", ""))
  •     logging.warning("%s: %s" % (match_str, ram_kb))
  •     return ram_kb
  • def get_pss_by_category(match_str):
  •     pattern = re.compile(r' *([0-9,]*)K%s' % match_str)
  •     ram_kb = pattern.findall((test_str).replace(",", ""))
  •     logging.warning("%s: %s" % (match_str, ram_kb))
  •     return ram_kb
  • def get_dumpsys_meminfo():
  •     li_ram_name = [
  •         "Total RAM:",
  •         "Free RAM:",
  •         "Used RAM:",
  •         "Lost RAM:"
  •     ]
  •     li_pss_category_name = [
  •         ": Native",
  •         ": .dex mmap",
  •         ": .so mmap",
  •         ": GL mtrack",
  •         ": Dalvik",
  •         ": .apk mmap",
  •         ": .oat mmap",
  •         ": .art mmap",
  •         ": EGL mtrack",
  •         ": Unknown",
  •         ": Dalvik Other",
  •         ": Stack",
  •         ": Other mmap",
  •         ": Gfx dev",
  •         ": .ttf mmap",
  •         ": Other dev",
  •         ": Ashmem",
  •         ": .jar mmap"
  •     ]
  •     for index, str in enumerate(li_ram_name):
  •         data = get_RAM(str)
  •     for index, str in enumerate(li_pss_category_name):
  •         data = get_pss_by_category(str)
  • get_dumpsys_meminfo()

[color=rgb(51, 102, 153) !important]复制代码



测试结果:

2017-12-12 15:36:52,118 Total RAM:: ['2837896', '2837896']
2017-12-12 15:36:52,118 Free RAM:: ['945990', '946064']
2017-12-12 15:36:52,118 Used RAM:: ['1707024', '1741513']
2017-12-12 15:36:52,119 Lost RAM:: ['143483', '111666']
2017-12-12 15:36:52,119 : Native: ['503841', '366458', '472309', '350803']
2017-12-12 15:36:52,119 : .dex mmap: ['254224', '284120']
2017-12-12 15:36:52,120 : .so mmap: ['156044', '154923']
2017-12-12 15:36:52,120 : GL mtrack: ['83928', '132952']
2017-12-12 15:36:52,120 : Dalvik: ['97988', '33957', '109194', '35966']
2017-12-12 15:36:52,121 : .apk mmap: ['97829', '109226']
2017-12-12 15:36:52,121 : .oat mmap: ['66618', '66826']
2017-12-12 15:36:52,122 : .art mmap: ['56504', '57492']
2017-12-12 15:36:52,122 : EGL mtrack: ['55068', '55068']
2017-12-12 15:36:52,122 : Unknown: ['49107', '52817']
2017-12-12 15:36:52,123 : Dalvik Other: ['33957', '35966']
2017-12-12 15:36:52,123 : Stack: ['20235', '20268']
2017-12-12 15:36:52,124 : Other mmap: ['14354', '14475']
2017-12-12 15:36:52,124 : Gfx dev: ['15188', '13752']
2017-12-12 15:36:52,124 : .ttf mmap: ['3805', '3790']
2017-12-12 15:36:52,125 : Other dev: ['1519', '1509']
2017-12-12 15:36:52,125 : Ashmem: ['1236', '1360']
2017-12-12 15:36:52,125 : .jar mmap: ['382', '361']

BRs
Eismog

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP