use utf8なら\sは全角スペースもmatchする
Femoで全角スペースでもTagのsplitができるように、と調べているのですが、
use utf8;
をしている場合、\s
は全角スペースにもmatchするようです。初めて気がついた。
#!/usr/bin/perl use strict; use warnings; use utf8; binmode STDOUT => ":utf8"; my $str ="全角 ス ペ ー ス が入った テキ\tス\nト"; print join ",",split /\s/,$str;
の出力は
全角,ス,ペ,ー,ス,が入った,テキ,ス,ト
となります。
perlretut - Perl
の正規表現のチュートリアルによると、これも知らなかったのですが、
\sは空白キャラクタで [\ \t\r\n\f]を表します
なのですね。
utf8の場合は、ここに書かれているutf8のGeneral
Category Valuesで表現すると
\s = [\p{Zs}\t\r\n\f]
なのかなぁ、、、難しいなぁ。
コメント
ホントですね!
いけるんですねー、これ。
なるほど、情報有難うございます!!
今までずっくjcode.plで引っ張ってきてたので、どうしても5.8.7の環境で記述しなくなって、時間もなくってオタオタしています。^^;
5.8.xは便利なんですけど、今までの資産と相容れないのでライブラリが死蔵されそうで、ちょっと怖いです。ただいま必死に移行中です。L(・o・)」
お邪魔しました~(〃▽〃)
投稿者: 音雑 | 2006年03月24日 23:21