Сопоставление с образцом и регулярное выражение в Perl - PullRequest
1 голос
/ 08 декабря 2010

У меня есть список слов, которые появляются в следующем формате [bmw, 32] [cadillac, 64].Как использовать регулярные выражения в сценарии Perl для извлечения содержимого между каждым набором скобок, чтобы я мог распечатать их в нужном формате?Я также заинтересован в использовании утилит командной строки для этого решения, но больше в Perl, так как мне это удобно.

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010
$_ = "[bmw,32][cadillac,64][audi,144][toyata,6]";
%car = m{ \s* \[ ( \pL+ ) , ( \pN+ ) \] \s* }gx;
printf "%-10s => %3d\n", $_ => $car{$_} for sort keys %car;
__END__
audi       => 144
bmw        =>  32
cadillac   =>  64
toyata     =>   6
0 голосов
/ 08 декабря 2010

\[(.*?)\]

Нежадное сопоставление даст вам два жетона.Это также предполагает, что в токенах, к которым вы подходите, нет квадратных скобок.

0 голосов
/ 08 декабря 2010
my $s = "[bmw,32][cadillac,64]";
$s =~ /\[(.*)\]\[(.*)\]/;
print $1;
print $2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...