ホームページ  >  記事  >  バックエンド開発  >  PHP preg match正規表現関数の動作例

PHP preg match正規表現関数の動作例

高洛峰
高洛峰オリジナル
2017-01-09 10:13:151552ブラウズ

php の preg_match() 関数は、正規表現を実行するためによく使用される関数です。正規表現は、ほとんどすべてのプログラミング言語で使用されます。この例では、PHP の正規表現 preg_match 関数のアプリケーションを紹介します。

preg_match() 関数は正規表現のマッチングに使用され、成功した場合は 1 を返し、それ以外の場合は 0 を返します。

preg_match() は、1 回の一致が成功すると一致を停止します。すべての結果を一致させたい場合は、preg_match_all() 関数を使用する必要があります。

文法:

preg_match (pattern , subject, matches)

PHP preg match正则表达式函数的操作实例

例:

この例は、大文字の後に . とスペースを含む文字列と一致します。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(&#39;pcre.backtrack_limit&#39;, 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 サイトをご覧ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。