sfantar schreef:

> As the path to a directory under Linux is like /file/file/file where
> file can be a word containing either - or _ .
> Which regexp can match this in the best way?
> I tried (/\w[-]?\w/)+ but it doesn't work well.

You have two slashes in there, as if you want to match

 /file//file//file

Further, almost any character can be part of a filename.

  m{ \A          # From start-of-buffer,
       (?:       # start a non-capturing group
          /      # that begins with a slash
          [^/]+  # which is followed by 1 or more
                 #   non-slash characters.
       )+        # Match 1 or more groups
     \z          # until end-of-buffer.
   }x


To capture the matched string in $1:

  m{ \A           # From start-of-buffer,
       (          # <start-of-capturing>
        (?:       # start a non-capturing group
           /      # that begins with a slash
           [^/]+  # which is followed by 1 or more
                  #   non-slash characters.
        )+        # Match 1 or more groups
       )          # <end-of-capturing>
     \z           # until end-of-buffer.
   }x


See also Regexp::Common.
http://search.cpan.org/search?module=Regexp::Common

-- 
Affijn, Ruud

"Gewoon is een tijger."



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to