English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本チュートリアル

PHP高級チュートリアル

PHP & MySQL

PHPリファレンスマニュアル

PHP preg_split()関数の用法および例

PHP 正規表現(PCRE)

preg_replace関数は正規表現を使用して文字列を分割します。

文法

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

指定された文字列を正規表現で分割します。

パラメータの説明:

  • $pattern: 検索に使用されるパターン、文字列形式。

  • $subject: 入力文字列。

  • $limit: オプションです。指定された場合、分割されたサブストリングは最大limit個に制限されます。最後のサブストリングにはすべての残りの部分が含まれます。limitの値は-1、0またはnullの場合は「制限なし」として処理されます。PHPの標準として、nullを使用してflagsの設定をスキップすることができます。

  • $flags: オプションで、以下のマークの組み合わせ(ビットオペレータ ORで組み合わせます):

    • PREG_SPLIT_NO_EMPTY: このマークが設定されている場合、preg_split()は空の部分を含まない分割結果を返します。
    • PREG_SPLIT_DELIM_CAPTURE: このマークが設定されている場合、区切りのパターン内の括弧表現がキャプチャされ、返されます。
    • PREG_SPLIT_OFFSET_CAPTURE: このマークが設定されている場合、各出現に対して文字オフセットが付加されるため、返り値の配列の各要素が、第0要素が区切られた子串、第1要素は、subject内での各子串のオフセットを含む配列です。

返り値

patternでsubjectを区切った後、得られた子串を要素として含む配列を返します。

オンラインサンプル

<?php
//コママまたはスペース(" ", \r, \t, \n, \f)で区切られた短語
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>

以下に実行結果を示します:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)
<?php
$str = 'w3codebox';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

以下に実行結果を示します:

Array
(
    [0] => r
    [1] => u
    [2] => n
    [3] => o
    [4] => o
    [5] => b
)
<?php

$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

以下に実行結果を示します:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )
    [1] => Array
        (
            [0] => language
            [1] => 10
        )
    [2] => Array
        (
            [0] => programming
            [1] => 19
        )
)

PHP 正規表現(PCRE)