regex - Perl - 非法十六进制数字警告错误
问题描述
我在这行代码上收到警告:
$mismatch = ($_ =~ s/[^\x0]//g);
在 xxxxxx.pl 第 61 行忽略了非法的十六进制数字 ']'。正则表达式对我来说似乎是有效的,请问是什么导致了这个错误?这是它不喜欢的右方括号。
谢谢!
解决方案
类似地,
\xnn
其中nn
是十六进制数字,匹配原生序数为 的字符nn
。同样,不完全使用两位数字是灾难的秘诀,但您可以使用\x{...}
指定任意数量的十六进制数字。
所以,你需要使用
s/[^\x00]//g
或者,s/[^\x{0}]//g
。
推荐阅读
- windows - 24小时屏保——如何处理巨大的视频
- java - MQTT JAVA 客户端程序 - 当我终止服务器时,第二个客户端显示为“不正常地断开连接”
- javascript - 从 Sqlite Expo 中选择的问题。无法通过钩子函数保存查询返回的数组
- python - Python 3 - 使用 .txt 文档字库的刽子手游戏
- javascript - querySelector 有效,但 querySelectorAll 无效
- objective-c - CGEventTapCreate 的 kCGEventTapOptionDefault 不起作用
- xamarin.ios - 如何设置布局约束以允许 UITextview 填充 UIImage 和 UIButton 之间的空间?
- json - 将一个对象添加到多个其他对象并将结果放入数组中
- python - 我怎样才能让程序在我的习惯跟踪器上跟踪完成的天数?
- winforms - webbrowser 控件不能左对齐显示表格文本?