2012-01-02 4 views
-1

Я пытаюсь получить подстроку из определенной строки. как показано ниже:Как получить подстроку с использованием perl с определенным шаблоном?

/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?

+0

извините за недоразумение, единственное, что изменения в строке является * .с как ac3dsp_armv6.S или ac3dsp_armv7.S – user668294

ответ

0
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

именно то, что мне нужно! – user668294

-1

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

Является ли строка подходящей как формат фиксированной ширины? Возможно нет.

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

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

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

+1

Downvoter: Укажите причину для downvote – Zaid

+0

извините за недоразумение, то Единственное, что меняется в строке: * .s как ac3dsp_armv6.S или ac3dsp_armv7.S – user668294

0

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

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; 
Смежные вопросы