in reply to Re^2: Parameterized Regex
in thread Parameterized Regex
If you use a named capture, then you can use that capture for a subsequent match, perhaps a new regex. ... using a named capture this way in a new regex ...
Could you give an example of what you mean? AFAIU, the %+ hash is re-initialized when a new regex match is entered.
To do something like you suggest, you would have to "capture the capture" in a separate set of variables before the new match was entered.c:\@Work\Perl\monks>perl -wMstrict -le "my $s = 'one two three four'; ;; $s =~ m{ \A (?<save> \w+) \s+ (?<this> \w+) \s+ (?<for> \w+) \s+ (?<later> \w+) \s* \z }xms; print join '-', @+{ qw(save this for later) }; ;; $s = 'fee fie foe fum'; ;; $s =~ m{ (?{ print join '==', @+{ qw(save this for later) } }) \A (?<save> \w+) \s+ (?<this> \w+) \s+ (?<for> \w+) \s+ (?<later> \w+) \s* \z }xms; print join '+++', @+{ qw(save this for later) }; " one-two-three-four Use of uninitialized value in join or string at (re_eval 1) line 1. Use of uninitialized value in join or string at (re_eval 1) line 1. Use of uninitialized value in join or string at (re_eval 1) line 1. Use of uninitialized value in join or string at (re_eval 1) line 1. ====== fee+++fie+++foe+++fum
Give a man a fish: <%-{-{-{-<
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Parameterized Regex
by Laurent_R (Canon) on Mar 03, 2017 at 23:33 UTC |