【问题标题】:match a pattern and extract next 10 characters perl匹配一个模式并提取接下来的 10 个字符 perl
【发布时间】:2015-02-04 10:22:48
【问题描述】:

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

示例:

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

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

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

谢谢。

【问题讨论】:

    标签: string perl pattern-matching


    【解决方案1】:

    你可以试试:

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

    (我认为问题必须是重复的,或者至少可以从 Perl 正则表达式文档中轻松找到答案,例如,请参见

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

    【讨论】:

    • 谢谢。我正在寻找正则表达式。这对于 5 个五个字段的文件效果更好,其中该字段是第五个。所以我在 perl 脚本中使用它来分割每一行并在第五个字段上使用这个正则表达式。
    【解决方案2】:

    试试这个

     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
    

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多