0

我是使用正则表达式的 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;
4

1 回答 1

1

逗号不是连接运算符,点是:

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;
于 2013-07-05T01:12:48.620 回答