文字列をオプションのプレフィックスとサフィックスと一致させるために、Perlで正規表現を使用するのに苦労しています。
これまでの私の表現は次のとおりです。
my $string = "prefix1_foo_suffix2";
if ($string =~ m/^(prefix1_|prefix2_)?(prefix3_|prefix4_)?foo|bar(_suffix1|_suffix2)?$/) {
print "match"
};
したがって、これは次のような文字列と一致する必要があります
prefix1_foo_suffix2
prefix1_prefix4_bar
bar_suffix2
だがしかし
prefix1_baz_suffix2
bar_suffix42
ただし、私が知る限り、これは任意の接尾辞(つまり、「foo」または「bar」の後のすべて)と一致します。私が間違ったことについて何か考えはありますか?