$out="MMNT123 out in a1 a2";
if($out=m(MM\w+\s\w+))
print 'pattern matched';
else
print 'pattern not matched';
如何将'模式匹配'作为输出......?
答案 0 :(得分:4)
在Perl中,if / else块必须有大括号。您还需要使用=~
运算符:
if($out =~ m(MM\w+\s\w+)) {
print 'pattern matched';
} else {
print 'pattern not matched';
}
答案 1 :(得分:3)
您有语法错误,因为您已在if .. else ...
语句中省略了大括号。
$out = "MMNT123 out in a1 a2";
if ($out = m(MM\w+\s\w+)) {
print 'pattern matched';
} else {
print 'pattern not matched';
}
但是仍然无法正常使用赋值运算符(=
),您应该使用绑定运算符(=~
)。
$out = "MMNT123 out in a1 a2";
if ($out =~ m(MM\w+\s\w+)) {
print 'pattern matched';
} else {
print 'pattern not matched';
}
为了完整起见,我应该指出:
$out = m(MM\w+\s\w+)
实际上是:
$out = ($_ =~ /MM\w+\s\w+/)
即。 “将$_
的内容与正则表达式匹配,如果匹配则将$out
设置为真值,如果匹配则设置为假值”。我猜$_
的内容与你的正则表达式不匹配,所以$out
总是得到一个假值。
答案 2 :(得分:0)
print 'pattern matched' if $out =~ /MM\w+\s\w+/;