正则表达式 – 按位不是Perl中的十六进制数

前端之家收集整理的这篇文章主要介绍了正则表达式 – 按位不是Perl中的十六进制数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含十六进制数字的长字符串.用 one’s complement(也是十六进制)替换每个数字的最佳方法是什么?

也就是说,如果我有

$string = "d3e5d1b8 66300f40 16010f2e \ncc1e010f 00b0b802 bbd0000f e38e0098 \n"

我想得到

$string = "2b1a2e47 99bff0cf e9fef0d1 \n33e1fef0 ff4f47fd 442ffff0 1b71ff67 \n";

我现在的解决方案是替换16个十六进制数字中的每一个

$string=~s/0/g/g; $string=~s/f/0/g; $string=~s/g/f/g;
...
...
16 times

解决方法

@H_403_30@ 使用 tr

$string =~ tr/0123456789abcdef/fedbca9876543210/;

猜你在找的正则表达式相关文章