备用匹配捕捉值
问题描述:
我有一个看起来像这样备用匹配捕捉值
MH = Calcimycin
AQ = AA
MED = *62
我想要做的就是捕捉从具有MH
和MED
,因为它的标题行的值的数据。 什么是单一的正则表达式来实现呢?
我试过,但失败:
my ($mem) = $line =~ /^MH|^MED = (.*?)$/m;
答
试试这个:
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));
}
我相信你的第二个插入符之前MED是不必要的。 –