php の preg_match() 関数は、正規表現を実行するためによく使用される関数です。正規表現は、ほとんどすべてのプログラミング言語で使用されます。この例では、PHP の正規表現 preg_match 関数のアプリケーションを紹介します。
preg_match() 関数は正規表現のマッチングに使用され、成功した場合は 1 を返し、それ以外の場合は 0 を返します。
preg_match() は、1 回の一致が成功すると一致を停止します。すべての結果を一致させたい場合は、preg_match_all() 関数を使用する必要があります。
文法:
preg_match (pattern , subject, matches)
例:
この例は、大文字の後に . とスペースが含まれる文字列と一致します。preg_match() は 1 回一致すると一致を停止するため、J. のみと一致します。さらにマッチします。
<?php $str="Daniel J. Gross Catholic High School A. is a faith and family based community committed to developing Christian leaders through educational excellence in the Marianist tradition."; if(preg_match("/[A-Z]. /",$str,$matches)){ print_r($matches); } ?>
出力結果:
Array ( [0] => J. )
以下は preg_match 文字列の長さの問題を紹介します
preg_match 通常はターゲットのコンテンツを抽出します、問題があります生死にかかわる問題であり、コードは徹底的にテストされます。
後で、PHP の preg_match には文字列長の制限があるのではないかと思いましたが、案の定、「pcre.backtrack_limit」の値はデフォルトで 100000 にのみ設定されていることがわかりました。
解決策:
ini_set('pcre.backtrack_limit', 999999999);
注: このパラメータは、php 5.2.0 バージョン以降で使用できます。
さらに、pcre.recursion_limit について説明します。pcre.recursion_limit は PCRE の再帰制限です。この項目が大きな値に設定されている場合、すべてのプロセスの使用可能なスタックが消費され、最終的には PHP がクラッシュします。
設定を変更して制限することもできます:
ini_set('pcre.recursion_limit', 99999);
実際のプロジェクト アプリケーションでは、メモリを制限することが最善です: ini_set('memory_limit', '64M') ; より安全で安心です。
PHP preg match 正規表現関数の動作例に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。