小编use*_*944的帖子

你能解释一下为什么\我的Perl正则表达式模式中的G表现如此吗?

$dna = "ATCGTTGAATGCAAATGACATGAC";
while ($dna =~ /(\w\w\w)*?TGA/g) {  # note the minimal *?        
    print "Got a TGA stop codon at position ", pos $dna, "\n";
}
Run Code Online (Sandbox Code Playgroud)

答案是:

Got a TGA stop codon at position 18    
Got a TGA stop codon at position 23

为什么18位而不是8位?以下23.我很困惑它是如何匹配的?有关比赛的详细信息是什么?

但正确的代码是:

while ($dna =~ /\G(\w\w\w)*?TGA/g) {        
  print "Got a TGA stop codon at position ", pos $dna, "\n";
}
Run Code Online (Sandbox Code Playgroud)

这打印:

Got a TGA stop codon at position 18

怎么样?

regex perl

5
推荐指数
2
解决办法
4384
查看次数

它是如何工作的?

perl编程中,\w是一种正则表达式.

我想知道的是它是如何匹配的?无论是匹配字符还是单词,同样的问题\w+

regex perl

1
推荐指数
2
解决办法
1756
查看次数

在perl中加入=>的用法

Perl编程包含一段代码,如下所示:

for $family ( sort { @{$HoA{$b}} <=> @{$HoA{$a}} } keys %HoA ) {
    say "$family: ", join(", " => sort @{ $HoA{$family} });
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是"=>"在连接函数中的含义是什么?

perl join

1
推荐指数
1
解决办法
111
查看次数

标签 统计

perl ×3

regex ×2

join ×1