[hello world 動かない ][検索]

プログラミング関連で自分が調べた事をメモる

php 正規表現 スペース区切り

php正規表現を使用してスペース区切りの文字列を切り出す


PHP: preg_split - Manual

やりたいことは検索用の入力フォームがあり、入力値をスペースで区切った単語を一つずつ取得すること。
単純なスペース区切りなら

explode(' ', $keyword);

で良いのだけど、スペースが連続していたり全角空白が入力されることも考慮すると
正規表現で切り出した方がよさそうだったので preg_split を使うことにした。

foreach (preg_split('/[[:space:] ]+/u', $keyword) as $w) {
  // 処理
}

一行の入力フォームに入れられることは基本ないと思うけど、
一応スペースとして定義されているタブや改行も区切りの対象とするために[:space:]を使用し
日本語も扱うのでパターン修飾子に u を付ける。これでパターン文字列と、対象文字列を
UTF-8として扱ってくれるらしい。