• 締切済み

全角スペースを切り落とす方法

掲示板などで、投稿された名前などに入っている全角スペースを切り落としたいのです。 $name =~ s/\s+//g; これでやってみたのですが、半角スペースしか切り落とせません。 全角スペースを切り落とすにはどのような方法がありますでしょうか? 自分なりに調べてみたんですが、わかりませんでした。 お時間ございましたら、教えていただけますでしょうか? 方法を紹介してあるURLだけでも結構ですので、よろしくお願い致します。

みんなの回答

  • 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 というのがいいのでは。

chicchi
質問者

お礼

>入ってくるデータがEUCで、スクリプトもEUCなら $name =~ s/ //g; でそのままできますよ。 実は、試してみたのですがダメだったのです。 しかし、これを書いたのが、jcodeで変換する前の部分だったので、ダメだったんですね。(^_^;) sjisの文字コードで指定した方法でやってみたところ、上手くいきました。 ありがとうございました。 しかし、これってもしUNIXユーザの人が書き込んだら、全角スペースは切り取られないということでしょうか? EUCの方も書いておいたほうがいいのでしょうか? 文字コード表があるURLとかってないんでしょうか? もし、ご存知でしたら教えていただけますでしょうか? ご返答に、さらに質問してしまってすみません。 もし、よろしけれご返答いただければ、幸いです。

  • Zz_zZ
  • ベストアンサー率44% (756/1695)
回答No.1

\s は、「 」(スペース=半角スペース)ですので、 それを、「 」(全角スペース)に置きかえれば?

chicchi
質問者

お礼

ご回答ありがとうございました。 私も同じことを考えてやってみたのですが、ダメだったのでした。(T_T) しかし、別の方法で解決いたしました。 ご親切にありがとうございました。

関連するQ&A