如何使用Perl提取数据列?

Sun*_*nny 1 regex perl split trim names

我有这种字符串

NAME1              NAME2          DEPTNAME           POSITION
JONH MILLER        ROBERT JIM     CS                 ASST GENERAL MANAGER 
Run Code Online (Sandbox Code Playgroud)

我希望输出是name1 name2和位置如何使用split/regex/trim/etc并且不使用CPAN模块?

Pau*_*lin 6

这将取决于它们是固定长度字段,还是它们是制表符分隔的.最简单的(使用拆分)是它们是否以制表符分隔.

my ($name1, $name2, $deptName, $position) = split("\t", $string);
Run Code Online (Sandbox Code Playgroud)

如果它们是固定的长度,并且假设它们都是10个字符长,你就可以解析它

my ($name1, $name2, $deptName, $position) = unpack("A10 A10 A10 A10", $string);
Run Code Online (Sandbox Code Playgroud)

  • @Sunny,那么你将如何确定一个字段的结束位置和下一个字段的开始位置,看看某些字段中是否有空格?您需要使用tab等特定字符来分隔它们,或者需要将它们放在特定位置.在第一种情况下,您使用拆分,在第二种情况下使用拆包. (2认同)