0
我的代码是:为什么中文字符在preg_replace函数中表现不对?
preg_replace('/[中]/', '1', '中,博文大,精中深');
为什么结果是:
111,博文大,精111深
中国的字符 '中' 应更换一次,而三重代替。
任何帮助?谢谢
我的代码是:为什么中文字符在preg_replace函数中表现不对?
preg_replace('/[中]/', '1', '中,博文大,精中深');
为什么结果是:
111,博文大,精111深
中国的字符 '中' 应更换一次,而三重代替。
任何帮助?谢谢
首先,请阅读这篇关于unicode characters in regexps的文章。 接下来,您可能需要关于modifiers的这篇文章。我认为你需要在你的正则表达式中使用u
修饰符。
preg_replace('/[中]/u', '1', '中,博文大,精中深');
请参阅modifiers文章中的评论以获取更多示例。
此外,为了简单替换上例中的示例,您可以使用str_replace。
str_replace('中', '1', '中,博文大,精中深');
它的工作原理。我知道如何避免它,但你帮助我从根本上解决它。非常感谢你。 还有一个小问题:为什么不用u修饰符替换或匹配三次?无论如何,我知道如何正确处理它。 – ccbility
我认为麻烦在于unicode字符是多字节的事实,所以正则表达式无法理解您想用您的符号替换所有八位字节并替换每个八位字节。但我不确定。 – marv255