我正在使用现有的 perl 脚本来处理来自我无法控制的数据库查询的文本文件输出。
数据包含由“|”分隔的字段,但某些字段包含“||”。没有空字段。字段分隔符的两侧可能有空格,我也想删除这些空格。
除了更改“||”之外,我找不到一种简单的方法来实现这一点 到别的东西,并在分裂后将其破解,这似乎有点沉重。
该文件很大(通常高达约 100M)。
使用split(/ *\| */, $line)
除 '||' 之外的作品 特点。
请问有什么想法吗?
split /\s*(?<!\|)\|(?!\|)\s*/
您可以使用否定的后视和前瞻来确保您要拆分的|
周围没有符号:|
split / \s* (?<!\|) \| (?!\|) \s* /x
查看使用Text::CSV或Tie::Handle::CSV运行文件。如果文本文件已正确完成包含||的字段 将被引用。