无法使用regexpresion进行匹配

时间:2013-12-10 18:06:59

标签: regex perl

我需要匹配下面的文件模式。以下是我需要搜索的行。

将苹果放入a / b / list.txt

以下是我的Perl代码的核心部分

my $r_path ="a";
while ($line=<FH1>)
   chomp ;
if($line=~/getting\s*apples\s*in\${r_path}.*\/(\w*)\.txt/)

即使简单似乎很奇怪,当我删除变量并给出硬编码值搜索似乎也有效。但是定义了r_path变量,它不起作用。

请让我知道这个问题。我也注意到这个模式在我的vim / regex中检测到变量被替换为它们的正确值。但是在perl中,似乎即使在这个替换之后也不起作用。

1 个答案:

答案 0 :(得分:2)

$不应该被转义 - 你不想要它的特殊含义 - 并且在$之前缺少空格。

my $r_path = "a";
my $line = 'getting apples in a/b/list.txt';
if ($line =~ /getting\s*apples\s*in\s*${r_path}.*\/(\w*)\.txt/) {
   print "<<$1>>\n";   # list
}
相关问题