使用Tie::file进行Perl文件操作
我正在解析一个HTML文件,该文件包含以类似网格的方式关联的数据,即将完成。我以前认为需要删除所有空行,但我没有注意到网格中的某些字段是空的。我现在尝试使用TIA::文件模块将文件存储在一个数组中,迭代它,如果有三个连续的空白行,我想插入一个我可以稍后操纵的哑值,这样空白行剥离不会改变我的数据结构。p> 到目前为止我尝试的内容(文件大小约为2 MB):使用Tie::file进行Perl文件操作,perl,file,Perl,File,我正在解析一个HTML文件,该文件包含以类似网格的方式关联的数据,即将完成。我以前认为需要删除所有空行,但我没有注意到网格中的某些字段是空的。我现在尝试使用TIA::文件模块将文件存储在一个数组中,迭代它,如果有三个连续的空白行,我想插入一个我可以稍后操纵的哑值,这样空白行剥离不会改变我的数据结构。p> 到目前为止我尝试的内容(文件大小约为2 MB): 编辑:我如何在数组上迭代并插入值,所以每条线之间只有一个空间,这样我就可以在后面除去所有的空行了? 如果我正确理解了您的问题(将三个连续的空行替
<>编辑:我如何在数组上迭代并插入值,所以每条线之间只有一个空间,这样我就可以在后面除去所有的空行了? 如果我正确理解了您的问题(将三个连续的空行替换为“null”一词,并在任意一侧替换一个空行),那么对您的文件内容进行操作的以下正则表达式可能会有所帮助:
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
F
使用Modern::Perl;
my$htmlFile=do{local$/;};
$htmlFile=~s/(?如果我正确理解了您的问题(将三个连续的空行替换为“null”一词,并在任意一侧替换一个空行),那么以下对文件内容进行操作的正则表达式可能会有所帮助:
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
F
使用Modern::Perl;
my$htmlFile=do{local$/;};
$htmlFile=~s/(?请发布一些示例输入和所需输出。请发布一些示例输入和所需输出。谢谢你的提示,我想我的逻辑是关闭的。@squiguy:不客气!我不知道你的逻辑是关闭的;上面只提供了一个不同的解决方案。谢谢提示,我想我的逻辑是关闭的。@squiguy:不客气!我不知道I don’我不知道你的逻辑是错的,上面只提供了一个不同的解决方案。