如何解压缩由sprintf创建的字符串-在Perl中具有固定宽度

永不圣徒

下面的行与固定在一起:

my $line = 'ATOM      1  P   CYT B   3      42.564 -34.232  -7.330  1.00105.08           P'

使用以下sprintf创建。

@entr = ( 'ATOM', '1', 'P', 'CYT', 'B', '3', '42.564', '-34.232', '-7.330', '1.00', '105.08', 'P' );
print sprintf("%-6s%5d  %-4s%3s %1s%4d    %8.3f%8.3f%8.3f%6.2f%6.2f          %2s\n",@newentr)

我想做的就是逆转这一过程。即以$line输入形式创建看起来像的数组@entr如何在Perl中实现呢?

疾病

您可以使用unpack或正则表达式:

#                    %-6s%5d  %-4s%3s %1s%4d    %8.3f%8.3f%8.3f%6.2f%6.2f          %2s\n
my @rev_eng = unpack 'a6 a5 x2 a4 a3x1 a1 a4 x4 a8   a8   a8   a6   a6   x10       a2', $output;

my $reg = qr/^(.{6}) (.{5}) .. (.{4}) (...) . (.) (.{4}) .{4} (.{8}) (.{8}) (.{8}) (.{6}) (.{6}) .{10} (..)/x;
my @regex = $output =~ $reg;

s/^\s+|\s+$//g for @rev_eng, @regex;

在模板中,a代表字符串,x忽略给定的字节数(在这种情况下为空格)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

iOS12 中的 NSKeyedUnarchiver 更改 - 如何解压缩字符串数组

如何在C#中解压缩GZip压缩字符串?

f字符串中未包含“'”的已解压缩列表的解压缩

从解压缩中收集终止字符串

如何在node.js中解压缩.gz字符串

你如何在React中解压缩字符串

如何在R中解压缩base64编码的字符串?

从C#中的压缩字符串解压缩Java中的字符串

检查字符串是否在字符串中并将其解压缩

使用zlib在php中压缩字符串并在python中解压缩

Pypsark解压缩具有不同长度的字符串的嵌套列表的列

Java中字符串数据的压缩和解压缩

在node.js和javascript客户端中压缩/解压缩字符串

Ruby字符串解压缩如何工作以提取16、32和64个有符号/无符号值?

flutter / dart:如何在flutter中解压缩/膨胀zlib二进制字符串

通过gzip在解压缩的字符串中显示未知字符

查找文件名中包含字符串的文件并解压缩

如何解压缩Android应用中的文件?

如何解压缩javascript中的gzip文件?

如何解压缩文件中的值

如何解压缩,解压-xvf-在混乱的文件夹中解压缩?

如何使SKScene具有固定宽度?

客户端中的Base64字符串压缩,服务器中的解压缩

使用python3进行字符串格式打印:有时从解压缩数组中打印

在Mac OS X中,如何解压缩一个zip文件而不解压缩其内容?

如何解压缩.gz文件并将解压缩的文件保存到Python中的其他目录?

如何在flutter中创建具有固定宽度和高度的颜色框?

如何强制行标签具有固定宽度并在 R 中的 pheatmap 中对齐?

如何解压缩具有tar.zst的存档文件?