到目前为止,如果我想在一个 if 语句中将几个正则表达式组合在一起,我是这样做的:
my $data =...
if ($data =~ m/regex/ && $data =~ m/secondregex/) {...}
是否有快捷方式(我确定有;它是 Perl!)以避免重复 $data,例如:if ($data =~ m/regex/ && m/secondregex/) {..}
??
最佳答案
使用默认变量 $_
像这样:
$_ = $data;
if ( m/regex/ && m/secondregex/ ) {..}
因为正则表达式作用于
$_
默认情况下(就像 Perl 中的许多其他东西一样)。只需确保您不在 $_ 自动填充的块中,您将需要在此块中稍后使用它。一旦覆盖它就消失了。
关于regex - 'if' 语句中的 Perl 正则表达式 [语法],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5593965/