2012-03-25 9 views
0

最初:私の悪い英語のために申し訳ありませんが、私の問題を説明します。preg_matc、replace、regexでテキストからイメージを取得

ıには、多くのイメージ名を含む値があります。このイメージの名前を区切るためにsome.jpganother.pngother.gifsomesome.jpg ....

ıの必要性:このよう

some.jpg 
another.png 
other.gif 
somesome.jpg 

私は検索していますが、まだ十分な答えはありません。

私の解決策は以下のとおりです。

regexp_substr('some.jpganother.pngother.gif', '[a-z0-9/]+.jpg'); 

preg_match_all("@([a-z0-9-]+).(jpg|gif|png)@i",'some.jpganother.pngother.gif',$a); 

はあなたに感謝します。

+4

は、なぜこれらの画像の名前は、間隔なしで連結得ていますか? – Josh

+0

私は、ファイル名がはっきりと分かれていることで、値が適合できるかどうかを確認することもお勧めします。これは、regexpの魔法を通じた分離を開発し、実行する努力を妨げるだろう。ファイル名が "bad.gif.png"になると、明確な分離が不可能になる可能性があります。 – Daxcode

+2

ソリューションの問題点は何ですか? 'preg_match_all'検索は私にとって完璧に機能しました。 – Basti

答えて

0

あなたの例のpreg_match_all()がうまくいくはずですが、ここではうまくいくはずの例があります。拡張子の前にファイル名にできる文字を制限するものではなく、束余分なものの。

preg_match_all('/.*?\.(?:png|gif|jpe?g)/', 'some.jpganother.pngother.gif', $matches); 
print_r($matches); 

Array 
(
    [0] => Array 
     (
      [0] => some.jpg 
      [1] => another.png 
      [2] => other.gif 
     ) 

) 
関連する問題