PHP preg_replace 十六进制
PHP preg_replace for hex
我正在尝试使用 preg_replace()
删除字符串中的所有十六进制字符(只有小写字母):
$line = "sjdivfriyaaqa\xd2vkmpcuyyuen";
$line = preg_replace('/\x[0-9a-f]{2}/', '', $line);
echo($line);
据我了解,这应该回显 sjdivfriyaaqavkmpcuyyuen
($line
并删除了 \xd2
)但它回显了原始的 $line
。为什么?
这会起作用
$line = "sjdivfriyaaqa\xd2vkmpcuyyuen";
$new = preg_replace('/\\x[0-9a-f]{2}/', '', $line);
echo($new);
您需要另一个黑斜杠在字符串中转义它,如果您尝试立即回显它,您会发现它是空的。
事实上,双引号 ""
解释转义字符 \
意思是 "\xd2"
例如 'Ò'
。
使用简单的引用 ''
你的代码没问题:
$line = 'sjdivfriyaaqa\xd2vkmpcuyyuen';
$line = preg_replace('#\\x[0-9a-f]{2}#', '', $line);
echo($line);
我正在尝试使用 preg_replace()
删除字符串中的所有十六进制字符(只有小写字母):
$line = "sjdivfriyaaqa\xd2vkmpcuyyuen";
$line = preg_replace('/\x[0-9a-f]{2}/', '', $line);
echo($line);
据我了解,这应该回显 sjdivfriyaaqavkmpcuyyuen
($line
并删除了 \xd2
)但它回显了原始的 $line
。为什么?
这会起作用
$line = "sjdivfriyaaqa\xd2vkmpcuyyuen";
$new = preg_replace('/\\x[0-9a-f]{2}/', '', $line);
echo($new);
您需要另一个黑斜杠在字符串中转义它,如果您尝试立即回显它,您会发现它是空的。
事实上,双引号 ""
解释转义字符 \
意思是 "\xd2"
例如 'Ò'
。
使用简单的引用 ''
你的代码没问题:
$line = 'sjdivfriyaaqa\xd2vkmpcuyyuen';
$line = preg_replace('#\\x[0-9a-f]{2}#', '', $line);
echo($line);