Chinaunix
标题:
python 正则 多行 非贪婪匹配 (求助)
[打印本页]
作者:
qimuzhi
时间:
2017-12-12 15:46
标题:
python 正则 多行 非贪婪匹配 (求助)
帖子发错位置了.
请抓到隔壁房间:
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
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2