I am sorry, but I can't make sense of your answer. :-( If the part marked as "code" is supposed to be a script that works - well, it doesn't; it just produces a bunch of errors.
But let's concentrate just on the regular expression, because this is what I asked for. Sadly, that doesn't work, either. :-(
Let's start with something easy:
my $data = "\@include test"; if ($data =~ /\@include\s+('[^']+'|"[^"]+"|.+?(?<!\\))\s+/g) { print "File name: \"$1\"\n"; }
This doesn't output anything at all, meaning that the parsing fails.
If we set
my $data = "\@include \'test test\'";this outputs
File name: "'test"which is totally wrong. It should output
File name: "test test"If we try
my $data = "\@include \"test test\"";this produces the similarly wrong
File name: ""test"And finally, if we try
my $data = "\@include test\\ test";it also produces no output, meaning that the matching fails
Any better suggestions?
In reply to Re^2: Help with a regular expression for file name parsing
by bontchev
in thread Help with a regular expression for file name parsing
by bontchev
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |