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 수정자를 사용하지 않고 3 번 대체하는 이유는 무엇입니까? 어쨌든, 나는 그것을 올바른 방법으로 처리하는 방법을 안다. – ccbility
유니 코드 문자가 멀티 바이트라는 사실에 문제가 있다고 생각합니다. 그래서 regexp는 모든 옥텟을 기호로 대체하고 각 옥텟을 바꿔야한다고 강조하지 못합니다. 그러나 나는 그것에 대해 잘 모르겠습니다. – marv255