我有一个文件:我该如何检查输入文件的格式
aaaa ddd
aaaa ddd
我要检查的格式为:aaaa(string) dddd(string)
有AAAA之间只有一个空间和dddd完整
例如:
aaaa ddd
aaaa ddd
或
aaaaddd
aaaa ddd
都是错误的。 字符串的大小并不相当... 我该如何在Perl中编写它?
我有一个文件:我该如何检查输入文件的格式
aaaa ddd
aaaa ddd
我要检查的格式为:aaaa(string) dddd(string)
有AAAA之间只有一个空间和dddd完整
例如:
aaaa ddd
aaaa ddd
或
aaaaddd
aaaa ddd
都是错误的。 字符串的大小并不相当... 我该如何在Perl中编写它?
如果我理解正确的话,你要检查你的文件中的每一行恰好有两个字符串检查(非空白字符?) ,由一个空格分隔。看看你的第一个例子,在第一个字符串之前也不应该有空格。
你需要应该是这个样子的正则表达式:
$line =~ /^\S+ \S+$/
\ S表示任何非空白字符。如果您可以更密切地指定允许的字符,则可以使用其他字符类。
要对此进行检查,每行,遍历文件:
open my $fh, '<', $filename;
while (my $line = <$fh>) {
if ($line !~ /^\S+ \S+$/) {
print "line $line has format error!\n";
}
}
谢谢^^。 我懂了! – manChan 2015-04-02 10:01:15
逐行读取一个文件中的行,然后用正则表达式
$line =~ /^a{4}\sd{3}$/
为什么是'AAAA ddd'格式错误? – Toto 2015-04-02 11:23:36