printf格式问题

时间:2010-12-31 16:04:59

标签: perl format printf

此脚本输出“abc”。如何更改printf的FORMAT部分以获得“123”作为输出?

#!/usr/bin/env perl
use warnings;
use 5.012;


my $str = 'abc123';

printf "%3.3s\n", $str;

# abc

1 个答案:

答案 0 :(得分:2)

您无法使用printf的{​​{3}}“截断左侧”。

您需要使用正则表达式或format strings来删除所需的部分,具体取决于您应用的确切逻辑来从该字符串中获取“123”。

print substr($str, 3, 3) . "\n"; # Get 3 scharacters from char #4

print substr($str, -3) . "\n"; # Get last 3 chars

$str =~ /(\d+)/; # Get the first digits-only substring
print "$1\n";