PHPの正規表現について詳しく話しましょう

PHPz
リリース: 2023-03-29 14:14:21
オリジナル
431 人が閲覧しました

Text:

正規表現は、文字列を照合するために使用されるツールです。正規表現は、入力の検証、置換テキストの検索、または必要な情報の抽出に使用できます。 PHP の正規表現は、文字列を操作するときに非常に便利です。

ただし、ファイル名または URL を扱う際に特別な注意が必要な特殊なケースがいくつかあります。 PHP の一般的な preg_match 関数を使用して .php で終わるファイル名を一致させると、いくつかの問題が発生する可能性があります。たとえば、「example.php」という名前のファイルを照合したいとします。

$file = 'example.php';
if (preg_match('/\.php$/', $file)) {
    echo "File is a PHP file";
} else {
    echo "File is not a PHP file";
}
ログイン後にコピー

上記のコードを実行すると、「ファイルは PHP ファイルです」と出力されることがわかります。ただし、「example2php」という名前のファイル:

$file = 'example2php';
if (preg_match('/\.php$/', $file)) {
    echo "File is a PHP file";
} else {
    echo "File is not a PHP file";
}
ログイン後にコピー

を照合しようとすると、出力は「ファイルは PHP ファイルです」であることがわかりますが、これは実際には間違った結果です。これは、2 番目の例では、文字列「example2php」も文字列「.php」で終わっているためです。これを回避するには、より正確な正規表現が必要です。

より良い解決策は、.php で終わる完全な単語のみに一致することです。これを実現するには、単語境界 (\b) を使用して、単語の先頭または末尾を一致させることができます。このようにして、コードを次のように変更できます。

$file = 'example.php';
if (preg_match('/\.php\b/', $file)) {
    echo "File is a PHP file";
} else {
    echo "File is not a PHP file";
}
ログイン後にコピー

上記のコードを実行すると、出力が正しいことがわかります。 「example2php」の文字列テストを使用して再試行すると、「ファイルは PHP ファイルではありません」という出力が表示されることがわかります。

.php で終わる文字列を正しく照合する方法はわかりましたが、注意すべき点はそれだけではありません。場合によっては、「example.class.php」や「example.php5」などの文字列と一致させる必要があるかもしれません。これらの特殊なケースを解決するには、正規表現でグループを使用します。たとえば、「.php」、「.php4」、「.php5」、または「.phtml」で終わるファイル名を一致させたい場合は、次のように記述できます。

$file = 'example.php5';
if (preg_match('/\.(php|php4|php5|phtml)$/', $file)) {
    echo "File is a PHP file";
} else {
    echo "File is not a PHP file";
}
ログイン後にコピー

上記のコードでは、次のように記述します。 group (php|php4|php5|phtml)。これは、複数の文字列と一致させるには、正規表現でグループを記述するだけでよいことを意味します。 $ 記号も使用しました。これは、一致する文字列で終わる必要があることを意味します。

要約すると、正規表現は PHP で非常に役立つだけでなく、他の多くのプログラミング言語で文字列を処理するための重要なツールでもあります。ファイル名または URL を操作するときは、細部に特に注意を払い、グループと境界を使用して、正規表現が必要なものと一致することを確認してください。正規表現を初めて使用する場合は、正規表現について詳しく読んで、その仕組みと構文を理解することをお勧めします。

以上がPHPの正規表現について詳しく話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!