我正在努力在 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”之后的任何内容)。关于我做错了什么的任何想法?