Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: variable quantifiers?

by AnomalousMonk (Chancellor)
on Jan 06, 2014 at 21:57 UTC ( #1069588=note: print w/replies, xml ) Need Help??

in reply to variable quantifiers?

>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'

Replies are listed 'Best First'.
Re^2: variable quantifiers?
by Anonymous Monk on Jan 06, 2014 at 22:04 UTC
    $ perl -e " use re 'debug'; $c='a'; $min=3; m/$c\{$min,}/; " Compiling REx "a\{3,}" Final program: 1: EXACT <a{3,}> (4) 4: END (0) anchored "a{3,}" at 0 (checking anchored isall) minlen 5 Freeing REx: "a\{3,}"

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1069588]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (6)
As of 2018-06-21 21:29 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (119 votes). Check out past polls.