orTHAETURQU .LLL..RRR HA,AE JURYATAUTIOPW .LLL...LL.RRR UR,RY,UT TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL WQ,QN,NQ,MN,NH,HF
THAETURQU .LLL..RRR HA JURYATAUTIOPW .LLL...LL.RRR UR,UT TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL WQ,NQ,MN,HF
kennethk assumed the latter. The following handles the former:
#!/usr/bin/perl use strict; use warnings; my @patterns = qw( .LLL LLLL .RRR RRRR LL ); chomp( my @file = <DATA> ); for my $pat (@patterns) { print("pattern = $pat\n"); our $string; our @matches; my $re = do { use re 'eval'; qr/ \Q$pat\E (?{ my $start = $-[0]; my $end = $+[0]; push @matches, substr($string, $start, $end - $start); }) (?!) /x }; for my $line (@file) { (local $string, my $mask) = split(/\s+/, $line, 2); local @matches; $mask =~ $re; local $" = ","; print "$line\t@matches\n"; } print("\n"); } __DATA__ THAETURQU .LLL..RRR JURYATAUTIOPW .LLL...LL.RRR TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL
pattern = .LLL THAETURQU .LLL..RRR THAE JURYATAUTIOPW .LLL...LL.RRR JURY TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL OWQN,WMNH pattern = LLLL THAETURQU .LLL..RRR JURYATAUTIOPW .LLL...LL.RRR TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL WQNQ,MNHF pattern = .RRR THAETURQU .LLL..RRR URQU JURYATAUTIOPW .LLL...LL.RRR IOPW TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL pattern = RRRR THAETURQU .LLL..RRR JURYATAUTIOPW .LLL...LL.RRR TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL pattern = LL THAETURQU .LLL..RRR HA,AE JURYATAUTIOPW .LLL...LL.RRR UR,RY,UT TURIWOWQNQQUTYRIOPWMNHF L..L..LLLL.LL.R..L.LLLL WQ,QN,NQ,UT,MN,NH,HF
In reply to Re: Extracting string based on comparison to second string?
by ikegami
in thread Extracting string based on comparison to second string?
by trudy123g
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |