如何检查输入文件的格式

时间:2015-04-02 09:17:22

标签: perl

我有一个文件:

aaaa ddd
aaaa ddd

我想查看格式:aaaa(string) dddd(string) aaaa和dddd之间只有一个空格

例如:

 aaaa ddd
aaaa ddd

aaaaddd
aaaa ddd
两个都错了。 字符串的大小不大... 我怎么用perl写呢?

2 个答案:

答案 0 :(得分:0)

逐行读取文件,然后使用regexp

进行检查
$line =~ /^a{4}\sd{3}$/

答案 1 :(得分:0)

如果我理解正确,你想检查文件中的每一行是否都有两个字符串(非空白字符?),只用一个空格分隔。看看你的第一个例子,在第一个字符串之前也不应该有任何空格。

你需要的正则表达式应该是这样的:

$line =~ /^\S+ \S+$/

\ S代表任何非空白字符。如果您可以更密切地指定允许的字符,则可以使用其他字符类。

要检查每一行,请循环遍历文件:

open my $fh, '<', $filename;
while (my $line = <$fh>) {
    if ($line !~ /^\S+ \S+$/) {
        print "line $line has format error!\n";
    }
}