[英]perl regex ignore specific keywords
我有以下输出:
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
,我该如何删除?
只是不要捕获您不想保留的内容:
#!/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
尝试这个 :
if ( $_ =~ /(=\s+)(.*[\d\.]+)/ ) {
print "$2\n";
};
m{ = ([0-9]+ (?: [.][0-9]+)? ) \s+ \S+ \s+ (\S+) }x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.