regex - Perl 中的十六进制数的按位非

标签 regex string 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 

最佳答案

使用 tr :

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

关于regex - Perl 中的十六进制数的按位非,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757629/

相关文章:

c - 如何计算字符串中特殊字符的数量?

java - 以编程方式访问字符串数组资源并为其添加值

windows - 为将由父进程启动的所有子进程重定向 STDOUT 和 STDERR

正则表达式允许除空格和下划线之外的所有内容

.net - 运算符之间的整体匹配

Python 文档关于正则表达式 "\b"有误吗?

Javascript正则表达式匹配波浪号之间的文本

java - 使连接字符串识别为 java 中声明的变量

regex - 用 perl 动态替换

regex - 在 awk 中使用 Perl 正则表达式属性