my @phrases = qw( foo bar ); my $sentence = " foo bar "; my ($phrases_pat) = map qr/$_/, join '|', map quotemeta, @phrases; $sentence =~ s/($phrases_pat)(\s)($phrases_pat)/$1$2$2$3/g; $sentence =~ s/(\s$phrases_pat\s)/#$1#/g; print("$sentence\n"); # "# foo ## bar #"