0
我很努力想在Perl中使用正則表達式來匹配帶有可選前綴和後綴的字符串。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」之後的任何內容)。關於我做錯了什麼想法?
這將是因爲它是可選的,換句話說:所有需要匹配的是** foo | bar **和* bar_suffix42 *。但是,如果prefix1_baz_suffix2確實如此,那麼我會感到驚訝,因爲baz不是您所需匹配的一部分。 – tink 2013-03-19 23:48:16