http://www.perlmonks.org?node_id=942596


in reply to Re^2: Help with a regular expression for file name parsing
in thread Help with a regular expression for file name parsing

Sigh, the site mangled the code I posted. :-( I guess I've used the wrong tag. Let's try again:

use strict; use warnings; while (my $data = <DATA>) { if ($data =~ /\@include/i) { $data =~ m/\@include\s+('[^']+'|"[^"]+"|.+?(?<!\\))\s/gi; my $fname = $1; $fname =~ s/\\([rnt'"\\ ])/"qq|\\$1|"/gee; $fname =~ s/^"(.*)"$/$1/s or $fname =~ s/^'(.*)'$/$1/s; print "File name: <$fname>\n"; } } __DATA__ #some "random stuff" @include "some file" did you parse that? #more 'random' stuff @include 'another file' you sure? #and more random stuff @include yet\ another\ file positive? #@Include file # @include "\"another one\"" hmmm... # some stuff

Replies are listed 'Best First'.
Re^4: Help with a regular expression for file name parsing
by BrowserUk (Patriarch) on Dec 09, 2011 at 09:35 UTC
    m/\@include\s+('[^']+'|"[^"]+"|.+?(?<!\\))\s/gi;

    Ah. So my regex wasn't so useless to you after all.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?