- 締切済み
全角スペースを切り落とす方法
掲示板などで、投稿された名前などに入っている全角スペースを切り落としたいのです。 $name =~ s/\s+//g; これでやってみたのですが、半角スペースしか切り落とせません。 全角スペースを切り落とすにはどのような方法がありますでしょうか? 自分なりに調べてみたんですが、わかりませんでした。 お時間ございましたら、教えていただけますでしょうか? 方法を紹介してあるURLだけでも結構ですので、よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- DKG
- ベストアンサー率40% (2/5)
回答No.3
perlの正規表現で大文字と小文字を区別しない、修飾子があります。 「i」です。 私も試したことがないのですが、この修飾子を使えば出来るのではないかと 思っています。 是非試してみてください。 $name =~ s/ //i;
- dany
- ベストアンサー率35% (27/77)
回答No.2
入ってくるデータがEUCで、スクリプトもEUCなら $name =~ s/ //g; でそのままできますよ。 文字コードが違うならjcodeとか使って変換してから というのもありですが、そんなのも面倒なので $name =~ s/\x81\x40//g; …SJIS $name =~ s/\xa1\xa1//g; …EUC というのがいいのでは。
- Zz_zZ
- ベストアンサー率44% (756/1695)
回答No.1
\s は、「 」(スペース=半角スペース)ですので、 それを、「 」(全角スペース)に置きかえれば?
質問者
お礼
ご回答ありがとうございました。 私も同じことを考えてやってみたのですが、ダメだったのでした。(T_T) しかし、別の方法で解決いたしました。 ご親切にありがとうございました。
お礼
>入ってくるデータがEUCで、スクリプトもEUCなら $name =~ s/ //g; でそのままできますよ。 実は、試してみたのですがダメだったのです。 しかし、これを書いたのが、jcodeで変換する前の部分だったので、ダメだったんですね。(^_^;) sjisの文字コードで指定した方法でやってみたところ、上手くいきました。 ありがとうございました。 しかし、これってもしUNIXユーザの人が書き込んだら、全角スペースは切り取られないということでしょうか? EUCの方も書いておいたほうがいいのでしょうか? 文字コード表があるURLとかってないんでしょうか? もし、ご存知でしたら教えていただけますでしょうか? ご返答に、さらに質問してしまってすみません。 もし、よろしけれご返答いただければ、幸いです。