TECH I.S.

PHP preg_match_all()関数

❮ PHP 正規表現リファレンス

文字列内のすべての「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 配列の構造を変更するオプションのセット

次の構造のいずれかを選択できます。
  • PREG_PATTERN_ORDER - デフォルト。matches 配列の各要素は、正規表現内の同じグループからのマッチの配列で、インデックス 0 が式全体のマッチに対応し、残りのインデックスがサブパターンのマッチに対応します。
  • PREG_SET_ORDER - matches配列の各要素は、文字列内で見つかったマッチの1つに対する、すべてのグループ化のマッチを含んでいます。
次のオプションをいくつでも適用できます。
  • PREG_OFFSET_CAPTURE - このオプションを有効にすると、各マッチは文字列ではなく、最初の要素がマッチを含む部分文字列、2番目の要素が入力中の部分文字列の最初の文字の位置となる配列となる。
  • PREG_UNMATCHED_AS_NULL - このオプションを有効にすると、マッチしないサブパターンは空文字列ではなくNULLとして返されます。
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); } ?>


❮ PHP 正規表現リファレンス


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細