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', '中,博文大,精中深');