Regex Query, чтобы найти первую вкладку перед EOL - PullRequest
1 голос
/ 13 сентября 2010

У меня есть строка, которая выглядит следующим образом:

$/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 ]

2 голосов
/ 13 сентября 2010
^\$(.*?)\t

Захватывает текст перед первой вкладкой.Длина захваченного текста плюс один (за доллар) указывает индекс вкладки.

1 голос
/ 13 сентября 2010

Вот способ получить первую вкладку и заменить ее:

#!/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

1 голос
/ 13 сентября 2010

Я думаю, что это выражение должно сделать это: ^\$(/\w+/\w+)\t

...