Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么preg_replace函数中的汉字性能错误?_Php_Regex_Preg Replace_Preg Match - Fatal编程技术网

Php 为什么preg_replace函数中的汉字性能错误?

Php 为什么preg_replace函数中的汉字性能错误?,php,regex,preg-replace,preg-match,Php,Regex,Preg Replace,Preg Match,我的代码是: preg_replace('/[中]/', '1', '中,博文大,精中深'); 为什么结果是: 111,博文大,精111深 汉字中' 应更换一次,而应更换三次 有什么帮助吗?谢谢首先,请阅读本文。 接下来,您可能需要这篇关于的文章。我认为在regexp中需要u修饰符 preg_replace('/[中]/u', '1', '中,博文大,精中深'); 请阅读文章中的评论以了解更多示例 此外,对于上面示例中的简单替换,您可以使用 这很有效。我知道如何避免它,但你基本上帮我解决了

我的代码是:

preg_replace('/[中]/', '1', '中,博文大,精中深');
为什么结果是:

111,博文大,精111深
汉字中' 应更换一次,而应更换三次


有什么帮助吗?谢谢

首先,请阅读本文。 接下来,您可能需要这篇关于的文章。我认为在regexp中需要
u
修饰符

preg_replace('/[中]/u', '1', '中,博文大,精中深');
请阅读文章中的评论以了解更多示例

此外,对于上面示例中的简单替换,您可以使用


这很有效。我知道如何避免它,但你基本上帮我解决了。非常感谢。还有一个小问题:为什么它在没有u修饰符的情况下替换或匹配三次?无论如何,我知道如何正确处理它。我认为问题在于unicode字符是多字节的,所以regexp不能理解您想用符号替换所有八位字节并替换每个八位字节。但我不确定。
str_replace('中', '1', '中,博文大,精中深');