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