我正在尝试在 Perl 中编写一系列正则表达式来从文件中提取某些类型的数据。出于某种原因,我似乎无法让 Perl 匹配其中包含下划线 ( _
) 的任何数据行。
如果我想获得以
"Ch2 Flybase exon "
或者
"Ch3 Flybase exon "
(空格是制表符),下面的代码效果很好:
if ($_ =~ m/^Ch[ 2-3] Flybase exon /) {print outputFile;}
但是,如果我想匹配具有更复杂染色体名称的行(即不仅仅是字母 'Ch' 后跟一个数字),例如:
Ch4_group1
Ch4_group2
Ch4_group3
Ch4_group4
Ch4_group5
ChXL_group1a
ChXL_group1e
ChXL_group3a
ChXL_group3b
ChXR_group3a
ChXR_group5
ChXR_group6
ChXR_group8
Unknown_group_1
Unknown_group_10
Unknown_group_100
Unknown_group_101
我尝试了以下代码但没有成功:
if ($_ =~ m/^Ch4_group[1-5] Flybase exon /) {print outputFile;}
if ($_ =~ m/^ChX._group[0-9]+[a-z]* Flybase exon /) {print outputFile;}
if ($_ =~ m/^Unknown_group_[0-9]+ Flybase exon /) {print outputFile;}
if ($_ =~ m/^Unknown_singleton_[0-9]+ Flybase exon /) {print outputFile;}
我也尝试过\
在 . 前面包含一个_
,但这没有帮助。