1

私は次の文字列を持っています。実際には、サイズは変えることができます。

my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC";

私がやりたいのは、*マーカーの左右に10文字を抽出して、次のようにすることです。

  my $output = "GCCTCCGCAG*AAGCGGTCGC";

Perlでそれを行うコンパクトな方法はありますか?

4

2 に答える 2

6

そこに行きます:

my $string = "ACCAGGGGGGCCTCCGCAG*AAGCGGTCGCCATAGTCAAAC";
my $output = substr($string, index($string, '*') - 10, 21);
于 2012-08-07T02:58:45.067 に答える
6

正規表現を使用してこれを行うためのすばやく簡単な方法を次に示します。2つ{10}のsは、各側で一致する文字数を表します。

my ($output) = $string =~ m{(.{10}\*.{10})};
于 2012-08-07T03:07:37.223 に答える