我应该使用什么命令从序列中删除特定的段?

时间:2017-08-26 17:33:00

标签: perl

在下面的字符串中:

AUGCGCGUUAAAAUGGGGGCCCCGCGCUUAGAACCGGAUG
      ^^                     ^^
First instance of GU    First instance of AG

如何从字符串中删除从GU的第一个实例开始到AG的第一个实例的段?在上面的示例中,输出应为:

AUGCGCAACCGGAUG

1 个答案:

答案 0 :(得分:1)

使用替换运算符s///

my $s = "AUGCGCGUUAAAAUGGGGGCCCCGCGCUUAGAACCGGAUG";
$s =~ s/GU.*?AG//;
print "$s\n";  # AUGCGCAACCGGAUG

另一种方法是使用index()substr()

my $s = "AUGCGCGUUAAAAUGGGGGCCCCGCGCUUAGAACCGGAUG";
my $i = index($s, "GU");
my $j = index($s, "AG", $i);

substr($s, $i, $j-$i+2) = "";
print "$s\n";  # AUGCGCAACCGGAUG