찾다

 >  Q&A  >  본문

PHP 트림 유니코드 공백

이 문자와 같은 유니코드 공백을 잘라내려고 하는데 이 솔루션을 사용하면 가능했습니다. 이 솔루션의 문제점은 일반 문자 사이의 유니코드 공백을 자르지 않는다는 것입니다. 예를 들어 이것은 얇은 공간을 사용합니다

으아아아

정규식에 대해 조금 알고 있는데 이 문제를 해결하려면 표현을 어떻게 바꿔야 할지 모르겠어요

P粉163951336P粉163951336367일 전1014

모든 응답(2)나는 대답할 것이다

  • P粉557957970

    P粉5579579702023-11-14 00:59:08

    문자열의 시작과 끝 부분에 제어 문자가 있는 모든 유니코드 공백을 제거하고 문자열 내 어디에서나 일반 공백을 제외한 제어 문자가 있는 모든 유니코드 공백을 제거하려면

    를 사용하세요. 으아악

    정규식 데모 #1 및 정규식 데모 #2을 참조하세요.

    세부정보

    • ^[pZpC]+ - 문자열 시작 부분에 하나 이상의 공백 또는 제어 문자
    • | - 또는
    • [pZpC]+$ - 문자열 끝에 하나 이상의 공백 또는 제어 문자
    • | - 또는
    • (?! )[pZpC] - 문자열 내의 일반 공백이 아닌 하나 이상의 공백 또는 제어 문자
    • [^S ] - 除常规空格 (x20)
    • 을 제외한 모든 공간

    일반적인 줄바꿈도 "제외"해야 하는 경우 (?! )[pZpC] 替换为 (?![ rn])[ pZpC]由 @MonkeyZeus 建议) ,在第二个正则表达式中,这意味着您需要使用 [^S rn](?![ rn])[ pZpC]로 바꾸세요(@MonkeyZeus

    에서 제안), 두 번째 정규식에서는 [^S rn]을 사용해야 함을 의미합니다.

    PHP 데모 보기

    : 🎜 으아악

    회신하다
    0
  • P粉445750942

    P粉4457509422023-11-14 00:22:00

    u{2009}와 같은 유니코드 공백이 어떻게 여러 곳에서 문제를 일으킬 수 있는지 알아보세요. 따라서 모든 유니코드 공백을 일반 공백으로 바꾼 다음 Trim()을 적용합니다.

    으아악

    참고: 주석의 문자열 표현은 debug::writeUni($string, $trimString);으로 표시됩니다. 이 클래스에서 구현되었습니다.

    회신하다
    0
  • 취소회신하다