我有一组子字符串,需要在一组URL字符串中进行匹配。这些子字符串包含特殊字符例如 '|'、'*'、'-'、'+'等。如果URL字符串中包含该子字符串,则需要执行某些操作。但现在让我们简单地在控制台中打印出"TRUE"。
我首先从子字符串列表中读取数据并将其放入散列表中。然后,我尝试对每个URL进行一个简单的正则表达式匹配,直到找到匹配项为止。代码大致如下。
我首先从子字符串列表中读取数据并将其放入散列表中。然后,我尝试对每个URL进行一个简单的正则表达式匹配,直到找到匹配项为止。代码大致如下。
open my $ADS, '<', $ad_file or die "can't open $ad_file";
while(<$ADS>) {
chomp;
$ads_list_hash{$lines} = $_;
$lines ++;
}
close $ADS;
open my $IN, '<', $inputfile or die "can't open $inputfile";
my $first_line = <$IN>;
while(<$IN>) {
chomp;
my @hhfile = split /,/;
for my $count (0 .. $lines) {
if($hhfile[9] =~ /$ads_list_hash{$count}/) {
print "$hhfile[9]\t$ads_list_hash{$count}\n";
print "TRUE !\n";
last;
}
}
}
close $IN;
问题在于子字符串中包含很多特殊字符,导致匹配过程中出现错误:$hhfile[9] =~ /$ads_list_hash{$count}/
。以下是一些示例:
+adverts/
.to/ad.php|
/addyn|*|adtech;
在像这样的行中,我会遇到一个错误,基本上说“量词后面没有正则表达式”。我需要改变正则表达式匹配语法中的某些内容来避免这种情况吗?