我有一个文件:
aaaa ddd
aaaa ddd
我想查看格式:aaaa(string) dddd(string)
aaaa和dddd之间只有一个空格
例如:
aaaa ddd
aaaa ddd
或
aaaaddd
aaaa ddd
两个都错了。
字符串的大小不大...
我怎么用perl写呢?
答案 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";
}
}