in reply to Finding Start/End Position of the Uppercase Substring
Updated.
Needs a better name and more tests:
#! perl -slw use strict; sub findUC { if( $_[0] =~ m[^(-*)[^A-Z]*([A-Z]+)] ) { return ( $-[2] - $+[1] + 1, $+[2] - $+[1] ); } return ( 0, 0 ); } my $str_type1 = "ccaatTTTGACACACACAGAAgggca"; # no dash my $str_type2 = "--aatTTTGACACACACAGAAgggca"; # with dash printf "%s start:%d end %d\n", $_, findUC( $_ ) for $str_type1, $str_type2, 'ctcgttccgaatagacgaatatgcgat', '--tcgcgaataggaactatacgatacgatac', 'CGCTAGTCACACTTTACGGACCAacac', '--GTACTATTACGAGCTATCTAGATActag'; __END__ c:\test>junk4 ccaatTTTGACACACACAGAAgggca start:6 end 21 --aatTTTGACACACACAGAAgggca start:4 end 19 ctcgttccgaatagacgaatatgcgat start:0 end 0 --tcgcgaataggaactatacgatacgatac start:0 end 0 CGCTAGTCACACTTTACGGACCAacac start:1 end 23 --GTACTATTACGAGCTATCTAGATActag start:1 end 24
|
|---|