이 문자와 같은 유니코드 공백을 잘라내려고 하는데 이 솔루션을 사용하면 가능했습니다. 이 솔루션의 문제점은 일반 문자 사이의 유니코드 공백을 자르지 않는다는 것입니다. 예를 들어 이것은 얇은 공간을 사용합니다
정규식에 대해 조금 알고 있는데 이 문제를 해결하려면 표현을 어떻게 바꿔야 할지 모르겠어요
문자열의 시작과 끝 부분에 제어 문자가 있는 모든 유니코드 공백을 제거하고 문자열 내 어디에서나 일반 공백을 제외한 제어 문자가 있는 모든 유니코드 공백을 제거하려면
정규식 데모 #1 및 정규식 데모 #2을 참조하세요.
세부정보
^[pZpC]+
|
[pZpC]+$
(?! )[pZpC]
[^S ]
x20
일반적인 줄바꿈도 "제외"해야 하는 경우 (?! )[pZpC] 替换为 (?![ rn])[ pZpC] (由 @MonkeyZeus 建议) ,在第二个正则表达式中,这意味着您需要使用 [^S rn]를 (?![ rn])[ pZpC]로 바꾸세요(@MonkeyZeus
(?![ rn])[ pZpC]
[^S rn]
PHP 데모 보기
u{2009}와 같은 유니코드 공백이 어떻게 여러 곳에서 문제를 일으킬 수 있는지 알아보세요. 따라서 모든 유니코드 공백을 일반 공백으로 바꾼 다음 Trim()을 적용합니다.
참고: 주석의 문자열 표현은 debug::writeUni($string, $trimString);으로 표시됩니다. 이 클래스에서 구현되었습니다.
문자열의 시작과 끝 부분에 제어 문자가 있는 모든 유니코드 공백을 제거하고 문자열 내 어디에서나 일반 공백을 제외한 제어 문자가 있는 모든 유니코드 공백을 제거하려면
를 사용하세요. 으아악정규식 데모 #1 및 정규식 데모 #2을 참조하세요.
세부정보
^[pZpC]+
- 문자열 시작 부분에 하나 이상의 공백 또는 제어 문자|
- 또는[pZpC]+$
- 문자열 끝에 하나 이상의 공백 또는 제어 문자|
- 또는(?! )[pZpC]
- 문자열 내의 일반 공백이 아닌 하나 이상의 공백 또는 제어 문자[^S ]
- 除常规空格 (x20
)일반적인 줄바꿈도 "제외"해야 하는 경우
에서 제안), 두 번째 정규식에서는(?! )[pZpC]
替换为(?![ rn])[ pZpC]
(由 @MonkeyZeus 建议) ,在第二个正则表达式中,这意味着您需要使用[^S rn]
를(?![ rn])[ pZpC]
로 바꾸세요(@MonkeyZeus[^S rn]
을 사용해야 함을 의미합니다.PHP 데모 보기
: 🎜 으아악u{2009}와 같은 유니코드 공백이 어떻게 여러 곳에서 문제를 일으킬 수 있는지 알아보세요. 따라서 모든 유니코드 공백을 일반 공백으로 바꾼 다음 Trim()을 적용합니다.
으아악참고: 주석의 문자열 표현은 debug::writeUni($string, $trimString);으로 표시됩니다. 이 클래스에서 구현되었습니다.