下面是一個腳本,我試圖反轉並替換(A => T,T => A,G => C,C => G)。Perl中的同步替換
VERSION 1
#!/usr/bin/perl
my $str="AAAAAGCTTGC";
$str_rev=scalar reverse ("$str"),"\n";
print"My original string: $str\n";
print "My reversed string: $str_rev\n";
$str_rev =~ s/A/T/g;
$str_rev =~ s/T/A/;
$str_rev =~ s/G/C/g;
$str_rev =~ s/C/G/;
print"My substituted reversed string: $str_rev\n";
OUTPUT:
My original string: AAAAAGCTTGC
My reversed string: CGTTCGAAAAA
My substituted reversed string: GCATCCTTTTT
全球所有置換(第2版)
$str_rev =~ s/A/T/g;
$str_rev =~ s/T/A/g;
$str_rev =~ s/G/C/g;
$str_rev =~ s/C/G/g;
print"My substituted reversed string: $str_rev\n";
OUTPUT:
My original string: AAAAAGCTTGC
My reversed string: CGTTCGAAAAA
My substituted reversed string: GGAAGGAAAAA
在第一個版本中,我觀察到不是全局的替換正在被替換一次(顯然,因爲它不是全局的)。在版本2中,由於它自上而下處理代碼,所以最後一個替換會跳過剩餘的「G」。我想要所有的替代品並行。我怎樣才能在一個字符串中實現呢?
謝謝!它工作 - 沒有「g」;) – user1504209 2013-03-28 09:39:58