プロが教えるわが家の防犯対策術!

正規表現について、「空白文字を区切りとして配列に分割する」というプログラムを書いていたのですが、私の浅い経験では、空白文字は "\s+"で処理できていたと思っていましたが、今PHP4で以下の結果、" +"でないと、正しく動作しませんでした。

$a = " 1 2 3 4 5 ";
$b = split(" +", $a);

"\s+"の方が正解だと私は思うのですが、どういう解釈で" +"でないといけないのでしょうか?

A 回答 (1件)

正規表現には方言があります。


\sもそのひとつで割合広く使われるものではありますが、POSIXなんかの規格にはありません。
また、PHPの正規表現は二種類(もしくは三種類)あり、それぞれ微妙に異なります。
参考URLの記述によれば、splitで使用できる正規表現では \s はメタ文字には
ならないようです。\sでsplitしたいなら、参考URLにあるように preg_split
を使うべきだと思います。

参考URL:http://php.benscom.com/manual/ja/function.split. …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!