Regex 正则表达式/^\s*$/的作用是什么?
这个表达式在Perl编程中做什么Regex 正则表达式/^\s*$/的作用是什么?,regex,perl,Regex,Perl,这个表达式在Perl编程中做什么 $variable =~ /^\s*$/; 这是在查找行开始(^),后跟零个或多个空格(\s*)字符,后跟行结束($) 它本质上是在寻找空行 我希望这个表达式可以用在类似于: if ($v =~ /^\s*$/) { # found a blank line } 为了执行检查和后续操作。什么都没有,因为您没有将此操作的结果分配给任何变量,并且没有可能测试的副作用 但是如果你说 if ($variable =~ /^\s*$/) { print "s
$variable =~ /^\s*$/;
这是在查找行开始(^),后跟零个或多个空格(\s*)字符,后跟行结束($) 它本质上是在寻找空行 我希望这个表达式可以用在类似于:
if ($v =~ /^\s*$/) {
# found a blank line
}
为了执行检查和后续操作。什么都没有,因为您没有将此操作的结果分配给任何变量,并且没有可能测试的副作用 但是如果你说
if ($variable =~ /^\s*$/)
{
print "something";
}
您将回答以下问题:
变量中的值是由空行组成还是由非打印空白字符(如空格和制表符)组成?
=~
是匹配运算符
如果$variable只包含空格,或者是空的,则该语句返回true
所以它只是检查字符串是否为空
if ( $variable =~ /^\s*$/ )
与
unless ( $variable =~ /\S/ )
或
如果为true,则实际语句位于一个循环中,该循环从文件中读取数据,并具有下一个条件if($variable=~/^\s*$/);在这种情况下,它意味着“跳过文件中的空行”Alex,从技术上讲,这并不完全正确。Perl中的正则表达式搜索有许多副作用,即使您没有将结果分配给任何变量。例如,$&变量保存最后一个匹配项,因此,可以在下一行使用它,如下所示:如果(已定义的$&){…}虽然$&保存最后一个匹配项的值是正确的,但如果该匹配项失败,它不保存undef。例如:perl-e'alex=~/alex/;乔=~/swapnil/;print$&'打印“alex”,因为这是最后一次成功匹配。短语“任意数字”有点模糊,我会说零个或更多的空白字符。
if ( $variable !~ /\S/ )