関数の概要
PHPの mb_split 関数は、正規表現パターンを使ってマルチバイト文字列を分割するための関数です。通常の preg_split と違い、マルチバイト文字を正しく扱えるため、日本語や中国語、韓国語などの文字列処理に適しています。文字コードを意識せずに文字列を分割したい場合に便利です。
パラメータの説明
pattern:分割に使う正規表現パターン。文字列内で分割したい部分を指定します。例:"/、/"(読点で分割する場合)string:分割対象のマルチバイト文字列。limit(省略可能):分割の最大数を指定します。正の整数を指定すると、その数まで配列の要素数を制限します。デフォルトは-1(制限なし)。
戻り値
分割された文字列の配列を返します。もし分割できない場合(パターンにマッチしないなど)は、元の文字列が1要素の配列として返されます。
使用例
基本的な使い方
<?php
$text = "こんにちは、世界。今日は良い天気です。";
$parts = mb_split("、", $text);
print_r($parts);
?>
「、」の部分で分割し、「こんにちは」と「世界。今日は良い天気です。」の2つの要素を持つ配列になります。
複数の区切り文字で分割
<?php
$text = "りんご、みかん。バナナ、ぶどう。";
$parts = mb_split("[、。]", $text);
print_r($parts);
?>
読点「、」と句点「。」の両方で分割し、複数のフルーツ名がそれぞれ配列要素になります。
最大分割数を指定する例
<?php
$text = "東京・大阪・名古屋・福岡";
$parts = mb_split("・", $text, 3);
print_r($parts);
?>
「・」で分割しますが、最大3つの要素までに制限しています。結果は3要素の配列になります。
関連する関数
preg_split:マルチバイト対応ではない通常の正規表現分割関数。explode:単純な文字列区切りで分割する関数(正規表現は使えません)。mb_str_split:マルチバイト文字単位で文字列を分割する関数。
まとめ
mb_split はマルチバイト文字列を正規表現で分割したい場合に便利な関数です。日本語をはじめとする多言語環境での文字列処理で、正確かつ簡単に分割処理を行えます。正規表現によって細かな分割ルールを設定できるので、実務でも幅広く活用できます。パフォーマンス面やより細かい単位での分割が必要な場合は、他の関連関数も用途に応じて使い分けましょう。
