我想提取“缓存”之后的数字(可能是任何非负整数),但不是“total_cache”之后的数字。我需要能够在一个正则表达式中执行此操作,并且我不能使用前瞻或后瞻。 (我在go中这样做,看起来在很大程度上与测试人员兼容:http://regexpal.com/)
cache 5764452352
rss 2929250304
rss_huge 0
mapped_file 283906048
pgpgin 19709097
pgpgout 17586611
pgfault 39612525
pgmajfault 3757
inactive_anon 160579584
active_anon 3931484160
inactive_file 3560427520
active_file 1040818176
unevictable 49152
hierarchical_memory_limit 9223372036854775807
total_cache 5764452352
total_rss 2929250304
total_rss_huge 0
total_mapped_file 283906048
total_pgpgin 19709097
total_pgpgout 17586611
total_pgfault 39612525
total_pgmajfault 3757
total_inactive_anon 160579584
total_active_anon 3931484160
total_inactive_file 3560427520
total_active_file 1040818176
total_unevictable 49152
答案 0 :(得分:5)
您需要使用FindStringSubmatch,然后提取m [1]。
答案 1 :(得分:2)
这应该这样做:
^cache\s(\d+)
工作正则表达式示例:
在Go编程语言中,我认为您可以使用以下方法强制执行多行模式:(?m)
像这样:
(?m)^cache\s(\d+)
注意:我不熟悉Go语法,所以请原谅我这是错的,但正则表达式是正确的,它只需要与多行标志一起使用。
答案 2 :(得分:1)
试试这个 -
^cache[ ](\d+)$
带有多行(m)标志的(在Regex Tester中勾选选项 - 换行时^ $匹配)