变量字符串中的Perl正则表达式

时间:2013-07-05 01:08:24

标签: regex perl

我是regex的新手。

我正在尝试使用一个字符串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;

1 个答案:

答案 0 :(得分: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;