ユーザーが提供するパターンを含む設定ファイルがあります。基本的には、パターンは何でもかまいません。アルファベット、数字、空白、必ずしも閉じていない括弧、特殊文字の組み合わせでもかまいません。 パターン例:<Error my (error** fail& 345% ?+[+?>
パターンが変数にあるときに、perlで複雑な未知パターンを照合する方法は?
私は非常にperlには新しく、これを処理するのに苦労しています。
私のコードの一部:
for (<FH>) {
for (my $j = 0 ; $j < $num_pat ; $j = $j + 1) {
print "This is the pattern : $pat_array[$j] \n";
if ($_ =~ m/'$pat_array[$j]'/) {
print "$_ : match found for $pat_array[$j] \n";
#print "KPI for the pattern is : $kpi_array[$match] : array style \n";
$match_count[$j] = ($match_count[$j] + 1);
}
}
}
パターン・アレイは、複数のパターンがあります。 ($ _ =〜m/'$ pat_array [$ j]' /) これは単純なパターンでは動作しますが、例のパターンでは動作しません。
さらに進んでください。
パターンが一致しない理由について意味のある回答を得るには、サンプルデータが必要です。おそらく '$ pat_array [$ j]'を引用していると言えますが、メタ文字を正しくエスケープしていない可能性があります。 – Sobrique
あなたが与えた例は間違いなく有効な正規表現ではありません - '**'は間違いなくエスケープされないと許可されていません –
あなたが持っているものは「複雑な未知の正規表現パターン」ではないので、 、それは単に有効な正規表現ではありません。これで何をしようとしているのか、何をしたいのかははっきりしません。 – melpomene