preg_split

関数の概要

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で複雑なパターンに基づいて文字列を分割したい場合にとても役立つ関数です。
正規表現を用いることで、単純な区切り文字以上の柔軟な分割を実現できます。
フラグを活用すれば、空文字の除去なども簡単に行えますので、実務でもぜひ使いこなしたい関数です。