2014-12-06 76 views
-4

我想要一个perl正则表达式,它可以匹配来自字符串的模式LOC_,并从字符串中提取包括LOC_在内的下10个字符。匹配一个模式,然后提取下10个字符perl

例如:

  • 字符串:H2CTT5_ORYRU | LOC_Os02g10100
    结果:LOC_Os02g10100

  • 字符串:Os02g0528200 | LOC_Os02g32660
    结果:LOC_Os02g32660

  • 字符串:LOC_Os09g54663 | Os02g0528200 | H2CTT6_OCYRU
    结果:LOC_Os09g54663

谢谢。

回答

0

你可以尝试:

if ($str=~ /(LOC_.{10})/) { 
    print "'$1'\n"; 
} 

(我觉得问题肯定是重复的,或者至少答案可以从Perl的正则表达式的文档很容易找到,例如见

http://perldoc.perl.org/perlretut.html#Matching-repetitions

+0

谢谢。我正在寻找正则表达式。这个字段是第五个字段的5个字段文件更好。所以我在perl脚本中使用这个来分割每一行,并在第五个字段上使用这个正则表达式。 – user2888306 2014-12-06 16:54:40

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 
相关问题