関数の概要
preg_splitは、PHPの正規表現関数の一つで、指定した正規表現パターンに基づいて文字列を分割するための関数です。
単純な区切り文字ではなく、複雑なパターンで文字列を区切りたい場合に便利です。
正規表現を利用するため柔軟性が高く、特に複雑な条件で文字列を分割したいときに役立ちます。
パラメータの説明
string $pattern:分割に使う正規表現パターン。デリミタ(例:スラッシュ / )で囲みます。string $subject:分割対象の文字列。int $limit = -1(オプション):分割回数の制限。-1または未指定の場合は制限なし。int $flags = 0(オプション):フラグを指定。たとえばPREG_SPLIT_NO_EMPTYで空の要素を除外できます。
戻り値
成功すると、分割された文字列の配列を返します。
失敗した場合は false を返します。
使用例
基本的な使い方
$str = "one,two,three,four";
$result = preg_split("/,/", $str);
print_r($result);
カンマ「,」を区切り文字として文字列を分割します。結果は配列 ["one", "two", "three", "four"] となります。
空の要素を除外する例
$str = "apple,,banana,,orange";
$result = preg_split("/,/", $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);
複数の連続したカンマで間に空の要素ができますが、PREG_SPLIT_NO_EMPTYフラグで空文字の要素を除外します。結果は ["apple", "banana", "orange"] です。
文字列の複数パターンでの分割
$str = "red;green|blue orange";
$result = preg_split("/[;|s]+/", $str);
print_r($result);
セミコロン「;」、パイプ「|」、および空白(スペース)でまとめて分割しています。複数文字の区切りを正規表現でまとめて指定できるのが特徴です。
関連する関数
explode:単純な文字列で分割する際に使う関数。preg_match:正規表現でパターンマッチングを行う関数。preg_replace:正規表現で文字列の置換を行う関数。
まとめ
preg_splitはPHPで複雑なパターンに基づいて文字列を分割したい場合にとても役立つ関数です。
正規表現を用いることで、単純な区切り文字以上の柔軟な分割を実現できます。
フラグを活用すれば、空文字の除去なども簡単に行えますので、実務でもぜひ使いこなしたい関数です。
