yeah you explain that well. thanks.

Andy Bach 写道:
 > But it doesn't work for this case:

$ perl -le '$x="/path/"; print 1 if $x=~m{path/\w+}'

 > it expects 1 returned.

Well, assuming you mean it shouldn't match as $x starts with a slash and the RE doesn't - you're on the right path.  The reason is, the match goes anywhere, it is "unanchored" so Perl happily says, "walking" down $x saying: "slash? nope. "p"? match! "a" match!! ... slash? yay! one or more ("+") word chars ("\w")? Aw, fail"

so, actually that RE fails:
$ perl -le '$x="/path/"; print 1 if $x=~m{path/\w+}'
[crickets]
as there's not even 1 "\w"
$ perl -le '$x="/path/"; print 1 if $x=~m{path/\w}'


zero or more ("*") works
$ perl -le '$x="/path/"; print 1 if $x=~m{path/\w*}'
1

as does none
$ perl -le '$x="/path/"; print 1 if $x=~m{path/}'
1

and adding the initial "/" to the RE still works:
$ perl -le '$x="/path/"; print 1 if $x=~m{/path/}'
1

but if you'd anchored ("^" - zero-width "at the beginning of the string" must be at the begining of the RE) your RE would fail too:
$ perl -le '$x="/path/"; print 1 if $x=~m{^path/}'

because the RE starts w/ "p" and the $x starts with slash.


On Tue, Jul 17, 2018 at 6:56 AM, Lauren C. <lau...@miscnote.net <mailto:lau...@miscnote.net>> wrote:

    Hello,

    I want to match:

    /path/
    /path/123
    /path/abc

    but /path/?xxx  should not be matched.

    This works:

    $ perl -le '$x="/path/abc"; print 1 if $x=~m{path/\w+}'
    1


    this works too:

    $ perl -le '$x="/path/?abc"; print 1 if $x=~m{path/\w+}'


    But it doesn't work for this case:

    $ perl -le '$x="/path/"; print 1 if $x=~m{path/\w+}'

    it expects 1 returned.

    Can you help? thanks.

-- To unsubscribe, e-mail: beginners-unsubscr...@perl.org
    <mailto:beginners-unsubscr...@perl.org>
    For additional commands, e-mail: beginners-h...@perl.org
    <mailto:beginners-h...@perl.org>
    http://learn.perl.org/





--

a

Andy Bach,
afb...@gmail.com <mailto:afb...@gmail.com>
608 658-1890 cell
608 261-5738 wk

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to