PHP preg_match_all()関数
例
文字列内のすべての「ain」を検索します。
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
if(preg_match_all($pattern, $str, $matches)) {
print_r($matches);
}
?>
定義と使用法
preg_match_all()
関数は、文字列内で見つかったパターンの一致の数を返し、見つかった一致を変数に入力します。
構文
<div>preg_match_all(<em>pattern, input, matches, flags, offset</em>)</div>
パラメータ値
パラメータ |
説明 |
---|---|
pattern | Required 何を検索するかを示す正規表現が含まれています |
input | Required 検索が実行される文字列 |
matches | Optional このパラメーターで使用される変数には、見つかったすべての一致を含む配列が入力されます |
flags | Optional matches 配列の構造を変更するオプションのセット 次の構造のいずれかを選択できます。
|
offset | Optional デフォルトは0です。文字列内のどこまで検索を開始するかを示します。 preg_match()関数は、このパラメータで指定された位置より前に発生する一致を検索しません。 |
Technical Details
Return Value: | 見つかった一致の数を返すか、エラーが発生した場合はfalseを返します |
---|---|
PHP バージョン: |
4+ |
変更ログ: |
PHP 7.2 - PREG_UNMATCHED_AS_NULLフラグを追加 PHP 5.4 - matchesパラメータがオプションになりました PHP 5.3.6 -オフセットが入力の長さより長い場合、この関数はfalseを返します。 PHP 5.2.2 - 名前付きサブパターンは、以前の (?P<name>)構文に加えて、(?'name') 構文と (? <name>) 構文を使うことができます。 |
その他の例
例
PREG_PATTERN_ORDERを使用して、matches配列の構造を設定します。この例では、matches配列の各要素は、正規表現のグループ化のひとつにマッチするものすべてを持っています。
<?php
$str = "abc ABC";
$pattern = "/((a)b)(c)/i";
if(preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER)) {
print_r($matches);
}
?>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。