这是perl脚本:
while ($line = <>)
{
if ($line =~ m/^ *$/)
{
$line = "--blank\n";
}
print($line);
}
用于替换文件中的所有空行与--blank\n
。
我不明白为什么它工作。为什么这个正则表达式m/^ *$/
匹配空行?因为在行尾有换行符,所以不能匹配。
UPDATE:
我认为:^
是行的开头,*
尽可能没有或尽可能多的空间,线$
结束。
空行必须是这样的:[ ][ ][ ]\n
这是^
然后[ ]*
然后\n
和$
。
它们为什么匹配?
可能的重复[参考 - 这是什么正则表达式?](http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean) – Tushar
'^':开始行, '*'表示任意数量的空格,'$':行尾。 – Tushar
据我所知,'$'与任何字符都不匹配,不包括'\ n'。还是呢? – nikartix