Perl - 非法十六进制数字警告错误

Perl - illegal hexadecimal digit warning error

提问人:Tenakha 提问时间:2/6/2021 更新时间:2/6/2021 访问量:360

问:

我在这行代码上收到警告:

$mismatch = ($_ =~ s/[^\x0]//g);

非法十六进制数字 ']' 在第 61 行 xxxxxx.pl 被忽略。 正则表达式对我来说看起来有效,请问是什么导致了这个错误? 这是它不喜欢的右方括号。

谢谢!

正则表达式 macOS Perl 警告

评论

0赞 Wiktor Stribiżew 2/6/2021
看来你需要s/[^\x00]//g

答:

8赞 Wiktor Stribiżew 2/6/2021 #1

根据 perldoc.perl.org

同样,,其中 是十六进制数字,与本机序号为 的字符匹配。同样,不完全使用两位数字是灾难的根源,但您可以使用它来指定任意数量的十六进制数字。\xnnnnnn\x{...}

所以,你需要使用

s/[^\x00]//g

或。s/[^\x{0}]//g

评论

1赞 Tenakha 2/6/2021
感谢您的快速回复,完全有道理,我已经修复了错误。