在 Windows 上使用 PHP 5.3.1。
我只是想在数字和字母之间添加空格,但是 PHP 正在破坏我的数据!
$text = "TUES:8:30AM-5:00PMTHURS:8:30AM-5:00PMSAT:8:00AM-1:00PM";
echo preg_replace("/([0-9]+)([A-Z]+)/","\1 \2",$text);
> TUES:8:☺ ☻AM-5:☺ ☻PMTHURS:8:☺ ☻AM-5:☺ ☻PMSAT:8:☺ ☻AM-1:☺ ☻PM
我的文件类型是 ANSI,不,源代码中没有 unicode。
这里有什么好玩的?
最佳答案
尝试使用 $
是你的反向引用指示符,而不是 '\':
echo preg_replace("/(\d)(\w)/","$1 $2",$text);
我敢打赌 \1
会被翻译成一些奇怪的东西……注意奇怪的字符在分钟输入为“30”和“00”之间不会改变
php manual说你应该双重转义你的反向引用,或者使用 $
(如果你使用的是 4.04 或更新的版本)
关于php - 奇怪的多字节 preg_replace 问题。它正在将我的数据更改为笑脸!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643162/