代码之家  ›  专栏  ›  技术社区  ›  Raj More

查找EOL前第一个选项卡的regex查询

  •  1
  • Raj More  · 技术社区  · 14 年前

    我有一条这样的线:

    $/Reporting/MSReportin gServices/Alle gro/Ex eXYZ.All egro.Ss rs:

    空格是制表符,所以这里是它的实际外观

    $/Reporting/MSReportin gServices/Alle{TAB}gro/Ex{TAB}eXYZ.All{TAB}egro.Ss{TAB}rs:

    我必须在每行中找到以 $ 符号。

    如何使用regex?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Toto    14 年前

    以下是检索并替换第一个选项卡的方法:

    #!/usr/bin/perl
    use strict;
    use warnings;
    
    my $s = qq!\$/Reporting/MSReportin\tgServices/Alle\tgro/Ex\teXYZ.All\tegro.Ss\trs:!;
    $s =~ s/^(\$[^\t]*?)\t/$1HERE_IS_THE_FIRST_TAB/;
    print '$1 = ',$1,"\n";
    print '$s = ',$s,"\n";
    

    输出:

    $1 = $/Reporting/MSReportin
    $s = $/Reporting/MSReportinHERE_IS_THE_FIRST_TABgServices/Alle  gro/Ex  eXYZ.All    egro.Ss rs:
    

    但是你必须更具体地说明 find the first tab

        2
  •  2
  •   Timwi    14 年前
    ^\$(.*?)\t
    

    捕获第一个选项卡之前的文本。捕获文本的长度加上一个(以美元为单位)告诉您选项卡的索引。

        3
  •  1
  •   splash    14 年前

    我认为这个表达应该做到: ^\$(/\w+/\w+)\t

    推荐文章