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