我有以下输出:
22.0 MiB + 27.1 MiB = 49.2 MiB process1
78.9 MiB + 636.5 KiB = 79.5 MiB process2
我需要最后一栏,所以我使用以下正则表达式,我将(XX MiB值和processX分为两组$ 1和$ 2)
/([^=]+)\s([a-z].*)/
结果:
49.2 MiB
79.5 MiB
我想在正则表达式组中忽略/删除MiB
如何删除它?
答案 0 :(得分:1)
答案 1 :(得分:0)
只是不要捕捉你不想留下的东西:
#!/usr/bin/perl
use warnings;
use strict;
while (<DATA>) {
/= \s* ([0-9.]+) \s MiB/x and print $1, "\n";
}
__DATA__
22.0 MiB + 27.1 MiB = 49.2 MiB process1
78.9 MiB + 636.5 KiB = 79.5 MiB process2
答案 2 :(得分:0)
试试这个:
if ( $_ =~ /(=\s+)(.*[\d\.]+)/ ) {
print "$2\n";
};
答案 3 :(得分:0)
m{ = ([0-9]+ (?: [.][0-9]+)? ) \s+ \S+ \s+ (\S+) }x