ホームページ > バックエンド開発 > PHPチュートリアル > 実際の PHP 正規表現: ファイル名の照合

実際の PHP 正規表現: ファイル名の照合

WBOY
リリース: 2023-06-23 13:18:02
オリジナル
2412 人が閲覧しました

PHP 正規表現の練習: ファイル名のマッチング

正規表現は強力なテキスト処理ツールであり、PHP 独自の正規表現関数により、パターン マッチングと置換のための多くの方法が提供されます。ファイル処理中に、ファイル名に基づいてフィルタリングや操作を行うことが必要になることがよくありますが、この目的は正規表現を使用することで簡単に達成できます。

  1. ファイル名拡張子の一致

まず、ファイル名の拡張子を抽出する必要があります。 PHP では、pathinfo 関数を使用して、パスをディレクトリ、ファイル名、拡張子などの部分に分解できます。ただし、ファイル名の拡張子部分のみを抽出する必要がある場合は、正規表現を使用してこれを実現できます。

次の正規表現を使用して、ファイル名の拡張子部分と一致させることができます。

preg_match('/.(?!.*/)([^./]+)$/', $filename, $matches);
ログイン後にコピー

逆先読みは正規表現で使用されます。つまり、後ろに文字が続かない文字です。スラッシュと小数点が一致します。これにより、ファイル パスの小数点ではなく、最後の小数点以降の部分のみが一致することが保証されます。一致結果は $matches 配列に保存され、一致する拡張子は $matches[1] を通じて取得できます。

たとえば、photo.jpg という名前のファイルの場合、上記の正規表現を使用して拡張子として jpg を抽出します。

  1. 特定のファイル名を一致させる

次に、正規表現を使用して特定のファイル名形式を一致させます。たとえば、日付で始まり、その後に 4 桁の数字が続く写真ファイル名を照合する場合は、次の正規表現を使用できます。

preg_match('/^d{8}-d{4}.jpg$/', $filename, $matches);
ログイン後にコピー

開始アンカーと終了アンカーは、正規表現で使用されます。ファイル名が一致していることを確認してください。8 桁の数字、ダッシュ、4 桁の数字、および .jpg の組み合わせで終わる必要があります。一致結果は $matches 配列に保存されます。一致が成功しなかった場合、$matches は空の配列になります。

たとえば、20210101-1145.jpg という名前のファイルの場合、上記の正規表現を使用すると正常に一致します。

  1. 複数のファイル名形式の一致

最後に、正規表現を使用して、異なる形式の複数のファイル名を一致させることができます。たとえば、拡張子 .jpg、.png、および .gif を含むファイル名を照合する場合は、次の正規表現を使用できます。

preg_match('/.(jpg|png|gif)$/', $filename, $matches);
ログイン後にコピー

正規表現では、文字セットとキャプチャ グループを使用してファイルを照合します。で始まる名前 .jpg、.png、.gif で終わる部分。一致結果は $matches 配列に保存されます。一致が成功しなかった場合、$matches は空の配列になります。

たとえば、photo.jpg という名前のファイルの場合、上記の正規表現を使用すると正常に一致します。同様に、logo.png および Banner.gif という名前のファイルも正常に照合できます。

結論

ファイル処理では、正規表現を使用すると、ファイル名の照合や操作が簡単に行えます。この記事では、正規表現を使用してファイル名拡張子、特定のファイル名形式、および複数のファイル名形式を照合する方法について説明し、対応するサンプル コードを提供します。これらのスキルを理解して習得することで、文書処理の効率と精度を向上させることができます。

以上が実際の PHP 正規表現: ファイル名の照合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート