PHP 文字列を区切り文字で分割するサンプル(preg_split)

PHPの文字列を区切り文字で分割するサンプルです。
preg_split関数を使用します。

確認環境
・PHP 7.1.8

目次

preg_split関数

array preg_split ( string $正規表現のパターン , string $入力文字列 [, int $数値 = -1 [, int $flags = 0 ]] )
  • 正規表現で文字列を分割します。
  • 戻り値は配列です。
  • 3つ目の引数(数値)は、分割する数を指定します。省略可能です。0と-1は制限が無いことを意味します。
  • 以下は、PHPマニュアルのpreg_split関数のリンクです。
    http://php.net/manual/ja/function.preg-split.php

カンマで分割する

4行目は、正規表現でカンマ(,)を指定しています。
6行目は、preg_match関数で2行目の文字列を4行目の正規表現で分割しています。

<?php
$str1 = "赤,黄,青";

$p1 = "/,/";

$array1 = preg_split($p1,$str1);

print_r($array1); //Array ( [0] => 赤 [1] => 黄 [2] => 青 )
?>

半角スペースで分割する

4行目は、正規表現で半角スペースを指定しています。
6行目は、preg_match関数で2行目の文字列を4行目の正規表現で分割しています。

<?php
$str1 = "赤 黄 青";

$p1 = "/\s/"; //円記号+S

$array1 = preg_split($p1,$str1);

print_r($array1); //Array ( [0] => 赤 [1] => 黄 [2] => 青 )
?>

区切り文字2つで分割する

4行目は、正規表現でカンマ(,)とコロン(:)を指定しています。
6行目は、preg_match関数で2行目の文字列を4行目の正規表現で分割しています。

<?php
$str1 = "あ,い:う,え";

$p1 = "/[,:]/";

$array1 = preg_split($p1,$str1);

print_r($array1); //Array ( [0] => あ [1] => い [2] => う [3] => え )
?>

文字列で分割する

4行目は、正規表現で文字列aa指定しています。
6行目は、preg_match関数で2行目の文字列を4行目の正規表現で分割しています。

<?php
$str1 = "あAaいaaうaAえ";

$p1 = "/aa/";

$array1 = preg_split($p1,$str1);

print_r($array1); //Array ( [0] => あAaい [1] => うaAえ )
?>

文字列で分割+大文字小文字を区別しない

4行目は、正規表現で小文字のaaという文字列を指定しかつiオプションを指定しています。
iオプションは、大文字と小文字の区別をしません。
6行目は、preg_match関数で2行目の文字列を4行目の正規表現で分割しています。

<?php
$str1 = "あAaいaaうaAえ";

$p1 = "/aa/i";

$array1 = preg_split($p1,$str1);

print_r($array1); //Array ( [0] => あ [1] => い [2] => う [3] => え )
?>

配列の要素数を指定する

6行目は、3つめの引数にlimitとして数値の2を指定しています。
2個の配列が作成されます。

<?php
$str1 = "A,B,C";

$p1 = "/,/";

$array1 = preg_split($p1,$str1,2);

print_r($array1); //Array ( [0] => A [1] => B,C )
?>

正規表現の主なパターン

以下をご参照願います。

主なパターン修飾子

以下をご参照願います。

関連の記事

PHP 正規表現で文字列を検索するサンプル(preg_match/preg_match_all)
PHP 文字列を置き換えるサンプル(preg_replace)

△上に戻る