Smartphonemoriyoshiの日記この広告は、90日以上更新していないブログに表示しています。どっちが正しいとかそういう話ではないので念のため...。ReportがAnnexとなっていたのを修正。微妙に誤解があった部分を修正。「POSIX正規表現の[:print:]は改行やタブがマッチするかどうかがPerlとPHPで異なりますね。Perlはマッチしない、PHPはマッチする。今回はPHPのせいじゃなかったみたいなのでいろいろほっとしました。1というわけで、PHP5.2.9のUTF-8とUTF-16のときだけ他のものと違う挙動をすることが分かります。鬼車の仕様?PHP5系だけ挙動が違うということは、鬼車に理由があるとしか考えられません。Unicodeの場合とでPOSIX文字クラスの仕様が異なっていることが分かります。type.ここで仕様変更が入っていることが分かり、この変更は意図的なものということがはっきりしました。2このLC_CTYPEカテゴリの定義はLocaleのドキュメントにあります。2printの説明のところだけ訳すとスペース文字を含む、表示可能文字として分類される文字を定義します。POSIXロカールでは、graphに属するすべてのキャラクタがこれに含まれます。cntrlクラスの文字は含まれません。ロカール定義ファイルにおいてupper、lower、alpha、digit、xdigit、punctに分類されている文字、そしてスペース文字は、自動的にこのクラスに含められます。cntrlで指定したキャラクタはここに指定することはできません。クラスに属することはありません。クラスに自動的に属します。分類することができます。いうことは、cntrlに何を含めるかが焦点ということになりそうです。Expressionsというものが定義されています。Properties」という節に、POSIX文字クラスとUnicode文字クラスの対応表があります。Categoryが...であるものにマッチするという意味です。「--」は、左辺と右辺の差集合です。いうカテゴリに分類されています。U+2029を差し引いたものということになります。SPACEに、graphクラスに属する文字を合わせたものとなります。それにしても、PHPのバグを調べていたはずなのに、思ったよりずっと深いところにダイブしてしまった...。化するスクリプトだんだんスニペット置き場になりつつあるような気がする...。