in reply to Re: Sort list by position of items in another list
in thread Sort list by position of items in another list
Similar to yours and choroba's solutions but without string multiplication ('x'):
And a bit similar to drclaw's idea:my $pchr = "KQRBNP"; my $w1 = "QRKPNBNBQRK"; my $w2 = ""; for my $L ( split //, $pchr ){ $w1 =~ m/$L(?{ $w2 .= $L })(*FAIL)/; } print "$w1 -> $w2\n"
Not sure if regex is optimized in some versions and this code fails.my $pchr = "KQRBNP"; my $w1 = "QRKPNBNBQRK"; my $w2 = ""; my $re = join "|", map { ".*$_" } split //, $pchr; $w1 =~ m/^(?:$re)(?<=(.))(?{ $w2 .= $1 })(*FAIL)/; print "$w1 -> $w2\n"
|
---|
In Section
Seekers of Perl Wisdom