2012-01-02 65 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 2012-01-02 11:53:21

回答

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 2012-01-02 12:33:27

-1

很难回答这个问题,因为没有足够的信息可以通过。有很多方法可以提取不保证通用的字符串。

字符串是否为固定宽度格式?可能不会。

什么是人们可以用来提取它所追求的子字符串如此独特?

你有没有考虑过使用正则表达式?

perldoc perlrequickperldoc perlretut应该提供实现所述目标所需的技术。

+1

Downvoter .S:请提供理由downvote – Zaid 2012-01-02 10:18:04

+0

遗憾的误解时,只有字符串中的变化是* .s,比如ac3dsp_armv6.S或ac3dsp_armv7.S – user668294 2012-01-02 11:58:32

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; 
相关问题