我正在使用现有的perl脚本来处理我无法控制的数据库查询的文本文件输出。
数据包含以“|”分隔的字段,但有些字段包含“||”。没有空字段。字段分隔符的两侧可能还有空格,我也想删除它。
除了更改“||”之外,我找不到一种简单的方法来实现这一目标除了别的东西,并在分裂后把它放入黑客,这看起来有点沉重。
文件很大(通常最多约100M)。
使用split(/ *\| */, $line)
与“||”分开使用字符。
有什么想法吗?
答案 0 :(得分:3)
split /\s*(?<!\|)\|(?!\|)\s*/
答案 1 :(得分:3)
你可以使用负面的后视和前瞻来确保你所分割的|
周围没有|
个符号:
split / \s* (?<!\|) \| (?!\|) \s* /x
答案 2 :(得分:1)
请使用Text::CSV或Tie::Handle::CSV来浏览该文件。如果文本文件已正确完成,则会引用包含 || 的字段。