私は次の文字列を持っています。実際には、サイズは変えることができます。
my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC";
私がやりたいのは、*マーカーの左右に10文字を抽出して、次のようにすることです。
my $output = "GCCTCCGCAG*AAGCGGTCGC";
Perlでそれを行うコンパクトな方法はありますか?
そこに行きます:
my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC";
my $output = substr($string, index($string, '*') - 10, 21);
正規表現を使用してこれを行うためのすばやく簡単な方法を次に示します。2つ{10}
のsは、各側で一致する文字数を表します。
my ($output) = $string =~ m{(.{10}\*.{10})};