2015-04-02 58 views
0

我有一个文件:我该如何检查输入文件的格式

aaaa ddd 
aaaa ddd 

我要检查的格式为:aaaa(string) dddd(string) 有AAAA之间只有一个空间和dddd完整

例如:

aaaa ddd 
aaaa ddd 

aaaaddd 
aaaa ddd 

都是错误的。 字符串的大小并不相当... 我该如何在Perl中编写它?

+0

为什么是'AAAA ddd'格式错误? – Toto 2015-04-02 11:23:36

回答

0

如果我理解正确的话,你要检查你的文件中的每一行恰好有两个字符串检查(非空白字符?) ,由一个空格分隔。看看你的第一个例子,在第一个字符串之前也不应该有空格。

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

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

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

要对此进行检查,每行,遍历文件:

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

谢谢^^。 我懂了! – manChan 2015-04-02 10:01:15

0

逐行读取一个文件中的行,然后用正则表达式

$line =~ /^a{4}\sd{3}$/ 
相关问题