2012-01-02 16 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 

私はPerlを使ってそれを行う方法、文字列ac3dsp_armv6.Sアウトを取得したいですか?

+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のような* .Sである:、誤解のために申し訳ありませんdownvote – Zaid

+0

の理由を記入してください文字列の変更だけ* acsdsp_armv6.Sまたはac3dsp_armv7.Sのようなものです – user668294

0

1つの可能なアプローチ。誤解して申し訳ありません

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; 
関連する問題