我有一个来自数据库表转储的hex2string,类似于
"41424320202020200A200B000C"
我希望做的是匹配偶数位置并检测控制字符,这些字符在打印时可能会破坏字符串。例如删除ASCII空字符\x00、\n、\r、\f和\x80到\xFF等。
我尝试删除ASCII空字符,如:
perl -e ' $x="41424320202020200A200B000C"; $x=~s/00//g; print "$x\n" '
但结果是不正确的,因为它删除了空格\x20的尾部十六进制值中的0和换行符\x0A的前导0,即
20 0A
变为2A
。414243202020202A2B0C
我想要的是。
414243202020202020
/r
和/a
),它就可以正常工作。/a
会导致[:print:]
仅匹配ASCII字符(00..7F)。 - ikegamiprint
替换say
)。 - ikegami