プロが教える店舗&オフィスのセキュリティ対策術

よくCookiesのファイルで、半角の黒い■の文字があると思いますが、そのような文字を消したい為に、おそらく改行だろうということで
$text =~ s/\n//g;としました。
それで、大部分は消せたのですが、それでも残っているのがあります。
他に考えられる制御文字はなんでしょう。
また、先の構文に当てはめるとs/の後になんと記述すればよいのでしょう。

A 回答 (3件)

>\W 単語キャラクターでないものにマッチします


これでどうでしょうか?

参考URL:http://www.kt.rim.or.jp/~kbk/perl5.005/perlre.html
    • good
    • 0
この回答へのお礼

教えていただいた\Wでやったというより、ご紹介のURLを参考にして原因がわかりました。不明な制御文字の正体はキャリッジリターンでした。
ありがとうございました。

お礼日時:2005/07/22 09:47

ANo.2の補足です。


Windows環境では、バイナリエディタで見ると「0A」(LF)だった、という説明が抜けていました。
    • good
    • 0

バイナリエディタで見ると「0A」(LF)ですね。


「\n」が「0A」に該当するかどうかは、UNIX系とWindows系で違います。

$text =~ s/\x0A//g;

と書けば良いかと思います。
    • good
    • 0
この回答へのお礼

原因がわかりました。不明な制御文字はラインフィールドではなくキャリッジリターンでした。
VBとかで改行プログラム書くときにvbcrlfつまりキャリッジリターンラインフィールドとしますが、そういう状態だったのです。\nだとラインフィールドだけ消すことになりキャリッジリターンの制御文字は残ってしまうのです。
これを消す為に
$text =~ s/\r//g;を追加して解決しました。
ありがとうございました。

お礼日時:2005/07/22 09:51

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