Perhaps another way is with a counted quantifier (see Quantifiers in perlre):
>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 spa +M' 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
In reply to Re: Limiting number of regex matches
by AnomalousMonk
in thread Limiting number of regex matches
by eversuhoshin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |