我有这一行:
[1] "RPKM_AB123_Gm12878_control.extended.bed_28m_control_500 and RPKM_AB156_GM12878-50ng_test.extended.bed_28m_test_500"
我想从字符串中提取AB123_Gm12878_control
和AB156_GM12878-50ng
。
我试过这个但它还没有用。
if ($_ =~ /.*"RPKM_([\w.]+).extended.+\s\w+\sRPKM_([\w.]+).extended.+"/){
print $1,"\t",$2,"\t";
}
有人可以指出我做错的地方吗?谢谢!
答案 0 :(得分:3)
".*RPKM_([\w.]+).extended.+\s\w+\sRPKM_([\w.]+).extended.+"
^^^^^
此字符类不接受您匹配的字符串所包含的-
。
尝试将连字符放入:
".*RPKM_([\w.]+)\.extended.+\s\w+\sRPKM_([\w.-]+)\.extended.+"
此外,逃避这段时间也是好事。
答案 1 :(得分:1)
您可以使用/g
if ( my($m1, $m2) = /RPKM_([^.]+)/g ) {
print $m1,"\t",$m2,"\t";
}