Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式/^\s*$/的作用是什么?_Regex_Perl - Fatal编程技术网

Regex 正则表达式/^\s*$/的作用是什么?

Regex 正则表达式/^\s*$/的作用是什么?,regex,perl,Regex,Perl,这个表达式在Perl编程中做什么 $variable =~ /^\s*$/; 这是在查找行开始(^),后跟零个或多个空格(\s*)字符,后跟行结束($) 它本质上是在寻找空行 我希望这个表达式可以用在类似于: if ($v =~ /^\s*$/) { # found a blank line } 为了执行检查和后续操作。什么都没有,因为您没有将此操作的结果分配给任何变量,并且没有可能测试的副作用 但是如果你说 if ($variable =~ /^\s*$/) { print "s

这个表达式在Perl编程中做什么

$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/ )