php - 奇怪的多字节 preg_replace 问题。它正在将我的数据更改为笑脸!

标签 php preg-replace

在 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/

相关文章:

PHP preg_replace,拆分还是匹配?

php - 用户 'web' @'localhost' 远程 mysql 的访问被拒绝

php - Zend Framework 2 需要 PHP 5.3.3 版本吗?

PHP PDO_mssql SQLSTATE[01002] Adaptive Server 连接失败(严重性 9)

php - preg_replace 带有/e修饰符的代码评估

php - preg_replace + UTF-8 在一台服务器上不起作用,但在另一台服务器上起作用

php - 使用相关模型的Count加载laravel eloquent模型

php - 计算单词的所有实例并存储在变量中

php - 在 php 中使用正则表达式查找结果 str

php - 如何制作 seo 友好的 url