1

我正在使用现有的 perl 脚本来处理来自我无法控制的数据库查询的文本文件输出。

数据包含由“|”分隔的字段,但某些字段包含“||”。没有空字段。字段分隔符的两侧可能有空格,我也想删除这些空格。

除了更改“||”之外,我找不到一种简单的方法来实现这一点 到别的东西,并在分裂后将其破解,这似乎有点沉重。

该文件很大(通常高达约 100M)。

使用split(/ *\| */, $line)除 '||' 之外的作品 特点。

请问有什么想法吗?

4

3 回答 3

3
split /\s*(?<!\|)\|(?!\|)\s*/
于 2012-11-01T10:48:45.400 回答
3

您可以使用否定的后视和前瞻来确保您要拆分的|周围没有符号:|

split / \s* (?<!\|) \| (?!\|) \s* /x
于 2012-11-01T10:49:40.687 回答
1

查看使用Text::CSVTie::Handle::CSV运行文件。如果文本文件已正确完成包含||的字段 将被引用。

于 2012-11-01T10:50:53.493 回答