-1

我有一个变量,如果它不包含特定的东西,我希望它打印成功。但它总是印刷成功,即使它在那里。

$mystring = " 1 2 3 4 5 TEST=/my/user/test this/is/test
              3 4 5 6 8 NEW=/my/new/offer this/is/offer
              3 4 5 2 2 FINAL=/final/test/offer /lets/see/this";

if (($mystring !~ m/1 2 3 4 5 TEST=\/my\/user\/test this\/is\/test/i) or 
   ($mystring !~ m/3 4 5 2 2 FINAL=\/final\/test\/offer \/lets\/see\/this/i))
    {
      print "success";
}

即使 mysstring 包含字符串,它的打印也会成功。任何帮助将不胜感激。

4

1 回答 1

0

您的脚本在声明;末尾缺少 a 。$mystring第二个正则表达式未终止,/i最后丢失。

通过这些更改,您的脚本可以正常工作。如果其中一个正则表达式不匹配,它会打印“成功”。在您的示例脚本中,两个正则表达式都匹配,并且不会打印“成功”。

如果您的意思是在任一正则表达式匹配时打印“成功”,请使用=~而不是!~.

于 2013-04-30T16:31:18.983 回答