>perl -wMstrict -le "my $c = 'A'; my $min = 3; ;; my $s = 'uuAvvAAwwAAAxxAAAAyy'; ;; printf qq{'$1' } while $s =~ m{ ([[:lower:]] (?:$c){$min,} [[:lower:] +]) }xmsg; " 'wAAAx' 'xAAAAy'
Update: The quantified sub-pattern in (?:$c){$min,} needs to be enclosed in a group (non-capturing or capturing) because otherwise $c{$min,} looks to Perl too much like the interpolation of a scalar hash element from the %c hash.
Further Update: Interesting. I was unaware of the \ (backslash) disambiguation pointed out below.
Further Further Update: Or maybe not so interesting, since the regex doesn't actually seem to match anything:
>perl -wMstrict -le "my $c = 'A'; my $min = 3; $_ = 'AAAAAA'; print 'match' if /($c\{$min,})/; print qq{'$1'}; " Use of uninitialized value $1 in concatenation (.) or string at -e lin +e 1. ''
Yet Another Update: It is also possible to use a constant, but it's kinda messy. A Readonly scalar might do a better job for you.
>perl -wMstrict -le "use constant MIN => 3; my $c = 'A'; ;; my $s = 'uuAvvAAwwAAAxxAAAAyy'; ;; printf qq{'$1' } while $s =~ m{ ([[:lower:]] (?:$c){${ \MIN },} [[:lower:]]) }xmsg; " 'wAAAx' 'xAAAAy'
In reply to Re: variable quantifiers?
by AnomalousMonk
in thread variable quantifiers?
by FryingFinn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |