Как получить подстроку с использованием Perl с определенным рисунком? - PullRequest
0 голосов
/ 02 января 2012

Я пытаюсь получить подстроку из определенной строки.как показано ниже:

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc -I. -I./ --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DHAVE_AV_CONFIG_H -arch armv7 --sysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -mcpu=cortex-a8 -fPIC -g -MMD -MF libavcodec/arm/ac3dsp_armv6.d -MT - -c -o - libavcodec/arm/ac3dsp_armv6.S -E

Я хочу получить строку ac3dsp_armv6.S, как это сделать с помощью Perl?

Ответы [ 3 ]

0 голосов
/ 02 января 2012

Один возможный подход.

my $string = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc -I. -I./ --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DHAVE_AV_CONFIG_H -arch armv7 --sysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -mcpu=cortex-a8 -fPIC -g -MMD -MF libavcodec/arm/ac3dsp_armv6.d -MT - -c -o - libavcodec/arm/ac3dsp_armv6.S -E'

my ($result)=$string=~m#/(.+?)\s+\-E\s*\z#gis;
print $result;
0 голосов
/ 02 января 2012
  my $string = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc -I. -I./ --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DHAVE_AV_CONFIG_H -arch armv7 --sysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -mcpu=cortex-a8 -fPIC -g -MMD -MF libavcodec/arm/ac3dsp_armv6.d -MT - -c -o - libavcodec/arm/ac3dsp_armv6.S -E';
  my @r = split(/ / ,( split /\//, $string )[-1]);
  print $r[0];
0 голосов
/ 02 января 2012

Трудно ответить на этот вопрос, так как недостаточно информации, чтобы пройти мимо.Существует множество способов извлечь строку, которая не гарантированно является общей.

Строка поступает в формате фиксированной ширины?Вероятно, нет.

Что такого уникального в искомой подстроке, которую можно использовать для ее извлечения?

Рассматривали ли вы использование регулярных выражений?

perldoc perlrequick и perldoc perlretut должны предоставить необходимые знания для достижения поставленной цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...