2010-12-13 21 views
1

ファイルシステムのファイル名を検証する正規表現を作成しようとしています。有効なファイル名のPHPの正規表現

例としては有効なの背後にあるロジック

をtapa_clubfrontier_org.png

  • tapa_lamborghini-talk_com.png
  • をtapa_newcougar_org.png

    • ている画像は続いTAPAで始まっていますアンダースコアでTLD(COM、ORG、ネット)_が続くその後のドメイン名

      おかげで(テスト)それを行うべき

  • 答えて

    5
    preg_match('/^tapa_[a-z0-9-_]+?_(com|org|net)\.png$/', $string); 
    

    。あなたも大文字を一致させたい場合は、次のようにi(大文字小文字を区別しない)フラグを追加:

    preg_match('/^tapa_[a-z0-9-_]+?_(com|org|net)\.png$/i', $string); 
    

    を、これはどのように動作するかのグラフィカルな表現のために、あなたはここでそれを貼り付けることができます:http://strfriend.com

    +0

    私はので、私はそれが大文字と小文字を区別しません(とOPはそれがあるべき指定されたことはありません)しかし、あなたがあれば一致しません作るかわからないPHPの正規表現をしませんファイル名には大文字が含まれています。 –

    +0

    はい、良い点。私はそれを追加します。 – Jonah

    0

    ^tapa_[a-zA-Z0-9\-_]+_(com|org|net)\.png$べきあなたのために働く。

    +1

    これはあまりにも貪欲です。。+はcom | org | netを含むすべてのものと一致します。また、ファイルの種類はありませんか? –

    1

    あなたは試みることができる:

    preg_match('/^tapa_.+_(com|org|net)\.png$/', $filename);