2012-01-02 63 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; 
相關問題