質問は、こんな感じ

 

perlでPHPみたいにrtrimをしたいです。
文字列の一番最後に全角スペースや半角スペースがあれば
削除するみたいな感じにしたいです。
全角が2つあってもそれも削除します。

どうすれば可能でしょうか?

 

#2を回答した方が、#1の方を惜しいと言ってるんだけれども、

#2の方も惜しいww

 

正規表現で、

 

$str =~ s/[\s ]+$//g;

 

すると、半角スペース、または、UTF-8の全角スペース「E38080」が分解され、

「\xE3」または、「\x80」または、「\x80」を消すってなっちゃいます

 

正解は、こんな感じ

 

 

#!/usr/bin/perl

use strict;
use warnings;

my $str1 = 'テスト ';           # 1byte space
my $str2 = 'テスト  ';         # 1byte spece and 3byte utf8 space
my $str3 = 'テスト  ';        # 3byte utf8 space and 3byte utf8 space

for my $w (($str1, $str2, $str3)) {
    $w =~ s/(\s|\xE3\x80\x80)+$//;
    print "<$w>\n";
}
exit;

 

まー、「[]」じゃくて「()」で文字列としてしましょーってことね

 

そいじゃ、またw

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: Hatena::Questionで、おしい合戦を解決してみるw

このブログ記事に対するトラックバックURL: http://modperlis.bounceme.net/mt/mt-tb.cgi/104

コメントする


画像の中に見える文字を入力してください。

Perl 勉強本

Oracle 勉強本

J2EE 勉強するなら、これしかなくね?

ブログ管理人

SE perler@29

アイテム

  • image001.gif
  • modperl.png

アドパートナー

tooland

Pingo!

boox