我在这行代码中得到一个警告:
$mismatch = ($_ =~ s/[^x0]//g);
在xxxxxx.pl第61行忽略非法十六进制数字']'。正则表达式对我来说是有效的,请问是什么导致了这个错误?它不喜欢的是右方括号
谢谢!
根据perldoc.perl.org
同样,
xnn
匹配其原生序数为nn
的字符,其中nn
为十六进制数字。同样,不使用精确的两位数字会导致灾难,但是您可以使用x{...}
来指定任意数量的十六进制数字。
所以,你需要使用
s/[^x00]//g
或者,s/[^x{0}]//g
.