chr*_*s01 2 regex perl binaryfiles
我需要用Perl中的其他内容(文本或二进制)替换二进制内容.
如果内容是文本的,我可以使用s ///来替换内容.
my $txt = "tomturbo";
$txt =~ s/t/T/g; # TomTurbo
Run Code Online (Sandbox Code Playgroud)
但如果内容是二进制的,那就不起作用了.
有没有一种简单的方法来处理?
谢谢!
Perl的正则表达式引擎将使用任意字符串.
s/t/T/g
Run Code Online (Sandbox Code Playgroud)
没有什么不同
s/\x{74}/\x{54}/g
Run Code Online (Sandbox Code Playgroud)
这意味着它会将字符值从74 16更改为54 16.正则表达式引擎不关心值74 16是否意味着t什么.
在二进制数据中,字符A 16不表示行的结尾,因此您将要使用该s标志,避免使用该m标志,并避免使用$.
此外,你会发现i标志和内置字符类(例如\d,\p{Letter}等)是无用的,除非你匹配解码文本的字符串(Unicode代码点的字符串),但你可以使用正则表达式引擎的任何功能.