我有一条看起来像这样的线:
$/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 执行此操作?
^\$(.*?)\t
捕获第一个选项卡之前的文本。捕获文本的长度加一(对于美元)告诉您选项卡的索引。
我认为这个表达式应该这样做:^\$(/\w+/\w+)\t
这是一种检索第一个选项卡并替换它的方法:
#!/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