第5章 組み込み関数 / 第1回 模擬試験

PHPの正規表現に関する次の記述のうち、誤っているものはどれか。

`preg_match()`関数は、文字列が正規表現にマッチするかどうかを調べる。
正規表現パターンはデリミタで囲む必要がある。
`preg_replace()`関数は、正規表現にマッチした部分を置換する。
`preg_split()`関数は、正規表現にマッチした部分を区切り文字として文字列を結合する。 正解
解説
`preg_split()`関数は、正規表現にマッチした部分を区切り文字とみなして文字列を「分割」し、分割された断片からなる配列を返す関数です。「結合する」という記述は誤りです(複数の文字列を結合するのは`implode()`などです)。 他の選択肢が正しい理由は次の通りです。 ・`preg_match()`は、文字列が指定した正規表現パターンにマッチするかどうかを判定し(マッチ数を返し)、マッチ部分を第3引数の変数に格納できます。 ・PCRE関数の正規表現パターンは`/pattern/`のように、パターンの前後を同じデリミタ(`/`, `#`, `~`など)で囲む必要があります。 ・`preg_replace()`は、パターンにマッチした部分を指定した置換文字列に置き換えます。 例: ``` print_r(preg_split('/[s,]+/', 'a, b c')); // ['a', 'b', 'c'] ``` (参照: 独習PHP 第4版 第5章 組み込み関数 5.4節 正規表現(PCRE)関数 p.213〜236)