第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)