それで、私は正規表現をいじっていました。私の友人は、文字列内のすべての 16 進数を置き換えるスクリプトを書くように私に挑戦しました。彼は、さまざまな文字と、もちろんいくつかの 16 進文字列が混在した大きなファイルを私にくれました。
16 進数の各出現箇所の前には が付きます。\x
たとえば、\x55
.
とても簡単だと思ったので、オンラインの正規表現テスターでこのパターンを試してみました。/\\x([a-fA-F0-9]{2})/
それは完璧に機能しました。
ただし、PHPコードにスローすると、まったく置き換えられません。
私が間違っている場所の正しい方向に誰かが私に微調整を与えることができますか?
これが私のコードです:
$toDecode = file_get_contents('hex.txt');
$pattern = "/\\x(\w{2})/";
$replacement = 'OK!';
$decoded = preg_replace($pattern, $replacement, $toDecode);
$fh = fopen('haha.txt', 'w');
fwrite($fh, $decoded);
fclose($fh);