我正在解析一个HTML文件,该文件包含以类似于网格的方式关联的数据,并且即将完成。我之前认为需要删除所有空行,但我没有注意到网格中的一些字段是空白的。我现在尝试使用Tie::File模块将文件存储在数组中,对其进行迭代,如果有三个连续的空行,我希望插入一个可以在以后操作的虚拟值,以便空行剥离不会改变数据的结构。
到目前为止我已经尝试过的(文件大小约为2 MB):
my @lines;
my $num = 0;
tie @lines, 'Tie::File', 'results.txt';
(tied @lines)->defer;
foreach (@lines)
{
chomp $lines[$num];
$num++;
if ($lines[$num-1] =~ /^$/ && $lines[$num+1] =~ /^$/)
{
$lines[$num] = "null";
}
}
(tied @lines)->flush;
untie @lines;编辑:如何迭代数组并插入值,使每行之间只有一个空格,这样以后我就可以去掉所有空行?
发布于 2012-07-11 01:40:33
如果我正确理解了您的问题(将三个连续的空行替换为单词"null“,并在两边各替换一个空行),那么对文件内容执行以下regex操作可能会有所帮助:
use Modern::Perl;
my $htmlFile = do { local $/; <DATA> };
$htmlFile =~ s/(?<!\S)\n{3}/\nnull\n\n/g;
say $htmlFile;
__DATA__
A
B
C
D
E
F
Output:
null
A
B
null
null
C
D
null
E
Fhttps://stackoverflow.com/questions/11415212
复制相似问题