note
AnomalousMonk
<p>
Perhaps another way is with a counted quantifier (see [doc://perlre#Quantifiers] in [doc://perlre]):
</P>
<c>
>perl -wMstrict -le
"my $mail = 'Spam mail sPam spAm stealthspam mail spaM';
print qq{you have the following mail: '$mail'};
;;
my $spam = qr{ (?i) \b spam \b }xms;
for my $n (2 .. 5) {
if (my ($spams) = $mail =~ m{ ((?: .*? $spam){$n}) }xms) {
print qq{there are $n spam emails in mail: '$spams'};
}
else {
print qq{there are NOT $n spam emails in mail};
}
}
"
you have the following mail: 'Spam mail sPam spAm stealthspam mail spaM'
there are 2 spam emails in mail: 'Spam mail sPam'
there are 3 spam emails in mail: 'Spam mail sPam spAm'
there are 4 spam emails in mail: 'Spam mail sPam spAm stealthspam mail spaM'
there are NOT 5 spam emails in mail
</C>
995621
995621