提问人:Tenakha 提问时间:2/6/2021 更新时间:2/6/2021 访问量:360
Perl - 非法十六进制数字警告错误
Perl - illegal hexadecimal digit warning error
问:
我在这行代码上收到警告:
$mismatch = ($_ =~ s/[^\x0]//g);
非法十六进制数字 ']' 在第 61 行 xxxxxx.pl 被忽略。 正则表达式对我来说看起来有效,请问是什么导致了这个错误? 这是它不喜欢的右方括号。
谢谢!
答:
8赞
Wiktor Stribiżew
2/6/2021
#1
根据 perldoc.perl.org,
同样,,其中 是十六进制数字,与本机序号为 的字符匹配。同样,不完全使用两位数字是灾难的根源,但您可以使用它来指定任意数量的十六进制数字。
\xnn
nn
nn
\x{...}
所以,你需要使用
s/[^\x00]//g
或。s/[^\x{0}]//g
评论
1赞
Tenakha
2/6/2021
感谢您的快速回复,完全有道理,我已经修复了错误。
评论
s/[^\x00]//g