J'ai un problème pour l'utilisation de variables dans une expression régulière. Avez-vous une idée de la façon de procéder?
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 my ($for_e5, $for_e3) = ($for_primer =~ /^([A-Z]+)([A-Z]{3})$/); my ($rev_e3, $rev_e5) = ($rev_primer =~ /^([A-Z]{3})([A-Z]+)$/); ... # préparation pour l'utilisation dans une expression régulière $for_e3 = qw/$for_e3/; $rev_e3 = qw/$rev_e3/; ... # REGEXP # $1 => $for_length_e5 nucléotides, suivi du motif $for_e3 # $2 => motif $rev_e3 suivi de $rev_length_e5 nucléotides if ($row[2] =~ /([A-Z]{0,$for_length_e5}$for_e3).*($rev_e3[A-Z]{0,$rev_length_e5})/){ print $1."\t".$2."\n"; } else{ warn "ERREUR pour l'id $row[0]\n"; }
Partager