PHPの文字列を区切り文字で分割するサンプルです。
preg_split関数を使用します。
| 確認環境 ・PHP 7.1.8 |
目次
- preg_split関数
- カンマで分割する
- 半角スペースで分割する
- 区切り文字2つで分割する
- 文字列で分割する
- 文字列で分割+大文字小文字を区別しない
- 配列の要素数を指定する
- 正規表現の主なパターン
- 主なパターン修飾子
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)