perl substr获取字符串中非空格的内容
本帖最后由 lovebelobe 于 2013-02-21 12:53:06 编辑 以下需求可以通过substr实现吗?还是有更方便的方法?
开头不为空格的部分用pack转换成binary,后面加空格填充至4bit。
"1234 " 8bit
→
"XX " 4bit
但是如果全部都有数据(例:"12345678")就不用做以上操作。
[解决办法]
while (<DATA>) {
chomp;
$len = length;
s/\s+$//g;
my $s = pack 'H*', $_;
my $slen = length $s;
$s .= ' ' x ($len / 2 - $slen);
my $t = unpack 'H*', $s;
my $tlen = length $t;
print "$len:$slen:$tlen: $t\n";
}
__DATA__
12345678900a1234567890
1234
12345678
是这个结果?
22:11:22: 12345678900a1234567890
8:2:8: 12342020
8:4:8: 12345678
[解决办法]
while (<DATA>) {
chomp;
$len = length;
s/\s+$//g;
my $s = pack 'H*', $_;
my $slen = length $s;
$s .= ' ' x ($len / 2 - $slen);
my $t = unpack 'H*', $s;
my $tlen = length $t;
print "$len:$slen:$tlen: $t\n";
}
__DATA__
12345678900a1234567890
1234
12345678