我有一个看起来像这样的数据
MH = Calcimycin
AQ = AA
MED = *62
我想要做的是从MH
和MED
作为标题的行中捕获值。
实现这一目标的单一正则表达式是什么?
我尝试了但失败了:
my ($mem) = $line =~ /^MH|^MED = (.*?)$/m;
答案 0 :(得分:5)
答案 1 :(得分:1)
试试这个:
use strict;
use warnings;
use 5.010;
my $var =<<END
MH = Calcimycin
AQ = AA
MED = *62
END
;
foreach my $line( split(/\n/, $var)){
my ($mem) = $line =~ /^(?:MH|MED) = (.*?)$/m;
say "matched $mem" if (defined($mem));
}