Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^2: Regex expression to match...

by dxxd116 (Beadle)
on Jun 17, 2011 at 18:15 UTC ( #910234=note: print w/replies, xml ) Need Help??

in reply to Re: Regex expression to match...
in thread Regex expression to match...

Using quantifier can help you avoid repeatting the pattern:
if ($string=~m@(\w+/){2,}@) { print "Dup is $1\n"; }

Replies are listed 'Best First'.
Re^3: Regex expression to match...
by wind (Priest) on Jun 17, 2011 at 19:38 UTC
    Quantifiers used in that way do not do what you think they will:
    use strict; use warnings; my @strings = qw( /help/one/one/one/bar/something_here /buy/cash/buy/water/water/water/baz/nothing_here ); for (@strings) { if (m{(\w+/){2,}}) { print "Dup is '$1'\n"; } } =prints bar/ baz/ =cut

    Even if it did work, you'd still need to add boundary conditions so that a sub directory that is a suffix of the previous directory wouldn't match. Also, if the duplicate is on the end, it wouldn't have a trailing /.

    Don't worry, at one point, I also thought a quantifier should work in that way, but that's specifically why they allow \1 in the LHS.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2018-06-17 23:14 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (107 votes). Check out past polls.