in reply to vertical regex in a matrix?
As for variable-length look-behinds... you can implement those via revexes!#!/usr/bin/perl $string = << "END"; ABC DEF GHI END for $a (0 .. 2){ for $b (0 .. 2) { ($u,$l,$P,$r,$d) = prox($string, $a, $b); print "$P: u=$u, l=$l, r=$r, d=$d\n"; } } sub prox { my ($str,$r,$c) = @_; my $rlen = index($str, "\n"); my $skip = '.' x (($rlen + 1) * $r + $c); my $b = '.' x $rlen; my $f = '.' x $rlen; return $str =~ m{ ^ (?s:$skip) (?s:(?<=(.)$b)?) (?<=(.))? (.) (?=(.))? (?s:(?=$f(.))?) }x; }
|
|---|