我是使用正则表达式的 perl 新手。
我正在尝试有一串 oid 1.3.6.1.2.1.4.22.1.2.*.192.168.1.1,但我不知道该怎么做。我尝试了以下方法,但出现错误,表示无法识别 oid。
my $matchanyoid = "/(\d+)$/";
my $dot1dTpFdbAddress = '1.3.6.1.2.1.4.22.1.2.',$matchanyoid,'\.',$srcip;
逗号不是连接运算符,点是:
my $dot1dTpFdbAddress = '1.3.6.1.2.1.4.22.1.2.' . $matchanyoid . '\.' . $srcip;
如果您尝试构建正则表达式,请注意前几个点没有反斜杠,因此它们可以匹配任何内容。为避免大量反斜杠,您可以使用以下\Q ... \E
构造:
my $matchanyoid = '(\d+)';
my $srcip = 12;
my $regex = qr/\Q1.3.6.1.2.1.4.22.1.2.\E$matchanyoid\.$srcip/;
print '1.3.6.1.2.1.4.22.1.2.123.12' =~ $regex;