use*_*209 0 string perl global substitution
下面是我试图反转然后替换的脚本(A => T,T => A,G => C,C => G).
版本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";
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
My original string: AAAAAGCTTGC
My reversed string: CGTTCGAAAAA
My substituted reversed string: GCATCCTTTTT
Run Code Online (Sandbox Code Playgroud)
所有替换的全球(第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";
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
My original string: AAAAAGCTTGC
My reversed string: CGTTCGAAAAA
My substituted reversed string: GGAAGGAAAAA
Run Code Online (Sandbox Code Playgroud)
在第一个版本中,我观察到非全局的替换被替换一次(显然,因为它不是全局的).在版本2中,由于它从上到下处理代码,因此最后一次替换会跳过剩余的"G".我希望所有的替换都是并行的.我怎样才能在字符串中实现这一点?