我想要一个perl正则表达式,它可以匹配字符串中的模式LOC_
,并从字符串中提取接下来的10个字符,包括LOC_。
示例:
字符串:H2CTT5_ORYRU | LOC_Os02g10100
结果:LOC_Os02g10100
字符串:Os02g0528200 | LOC_Os02g32660
结果:LOC_Os02g32660
字符串:LOC_Os09g54663 | Os02g0528200 | H2CTT6_OCYRU
结果:LOC_Os09g54663
感谢。
答案 0 :(得分:0)
你可以尝试:
if ($str=~ /(LOC_.{10})/) {
print "'$1'\n";
}
(我认为问题必须是重复的,或者至少可以从Perl正则表达式文档中找到答案,例如参见
http://perldoc.perl.org/perlretut.html#Matching-repetitions)
答案 1 :(得分:0)
试试这个
foreach (<DATA>){
m/(LOC_).{10}/g;
print "$&\n";
}
__DATA__
string : H2CTT5_ORYRU|LOC_Os02g10100
result : LOC_Os02g10100
string: Os02g0528200|LOC_Os02g32660
result: LOC_Os02g32660
string: LOC_Os09g54663|Os02g0528200|H2CTT6_OCYRU
result: LOC_Os09g54663