Perl-如何根据不同的字符长度拆分一行

标签 perl split

我想根据多个字符长度拆分一行并将它们存储在单独的变量中。
例如:$myString = "Mickey 24 USA alive这里前 12 个字符是用户名,接下来的 2 个字符是年龄,接下来的 23 个字符是国家,接下来的 7 个字符是状态。
那么有没有办法使用 split() 单独保存它们?或 s/// ?
谢谢,

最佳答案

使用 unpack built-in function 可以最简单有效地完成对固定宽度字段的拆包。 .

像这样

use strict;
use warnings;

my $my_string = 'Mickey      24                    USA alive';

my ($username, $age, $country, $status) = unpack 'a12 a2 a23 a7', $my_string;

print <<__END_OUTPUT__;
"$username"
"$age"
"$country"
"$status"
__END_OUTPUT__

输出
"Mickey      "
"24"
"                    USA"
" alive"

关于Perl-如何根据不同的字符长度拆分一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948283/

相关文章:

python - 考虑报价的字符串拆分

linux - 重构 Perl 代码和 PostgreSQL 数据库结构的工具

linux - 如何修改下面的squid url_rewriting_program

sql - 拆分 SQL Server 2005 表中的数字和字母

r - 未拆分列表,合并因子

arrays - 解析 Powershell 数组中的 RegEx IP 匹配项

perl - 我可以使用基于 ExtUtils::MakeMaker 的构建系统 "out of tree"构建 Perl 模块吗?

perl - 两次评估只读变量时的不同结果

perl - 为什么 Perl 认为 -1 是真的?

c++ - 使用 boost split 方法时可以使用字符串作为分隔符吗?