Perl - 检测标头记录

时间:2011-02-16 21:09:45

标签: regex perl header detect

如果我的文本文件有一个标题记录,并且字段由管道“|”分隔像 - >

之类的东西
Column1|Column2|Column3\n
A|B|C\n
E|F|G\n
1|2|X\n

有没有办法可以通过编程方式确定文件中是否存在标题记录?问题是标题并不总是一致的(因此,Column1在某些文件中可能称为Column100)

3 个答案:

答案 0 :(得分:1)

您可以阅读文件的第一行,将其拆分为“|”,然后检查以确保每个列名与正则表达式/^Column\d+$/匹配。

my @columns = split /\|/, $first_line;
if ( @columns == grep { m/^Column\d+$/ } @columns ) {
    # each column in the first line looks like a header
} else {
    # ...
}

答案 1 :(得分:1)

我只知道:标题行字段几乎肯定是单词(文本),数据行是不同的数据类型(按列)。因此,如果第一行中存在按类型但不存在相同类型的列,则表示存在标题。

您需要某种数据类型测试程序,并且需要此文本文件中的大约5行才能清除它。

答案 2 :(得分:0)

不,你没有提供足够的信息。您描述的标题的唯一令人遗憾的属性是管道符号,并且除了标题之外的任何内容都不能存在,前面不能有非管道线。