Flutter로 문자에서 공백 문자를 모두 삭제

5945 단어 Dart정규식Flutter

소개



문자 앞뒤에서 공백 문자를 제거하는 것은 간단합니다.
String text = ' text ';

// 前後の空白文字削除
print(text.trim());

// 前の空白文字削除
print(text.trimLeft());

// 後の空白文字削除
print(text.trimRight());

하지만 이것으로 문자 안에 들어있는 공백 문자를 삭제할 수 없습니다.

Dart에서도 정규 표현식을 사용합니다

환경


  • macOS Catalina 버전 10.15.6
  • Android Studio 4.0
  • flutter --version
    
    Flutter 1.20.1 • channel stable • https://github.com/flutter/flutter.git
    Framework • revision 2ae34518b8 (10 days ago) • 2020-08-05 19:53:19 -0700
    Engine • revision c8e3b94853
    Tools • Dart 2.9.0
    

    전제 조건
  • Flutter 설정
  • Flutter 프로젝트 생성

  • 막상 정규식



    다음을 이용합니다.
  • replaceAll
  • RegExp
  • String text = ' te xt ';
    print(text.replaceAll(RegExp(r'\s'), ''));
    

    정규 표현에 대해



    Dart 는 공백에 대해 Unicode White_Space 속성(버전 6.2 이상)과 BOM 문자로 정의되어 있으므로 \s 는 다음 문자와도 일치합니다.


    이름
    코드 포인트


    CHARACTER TABULATION
    U+0009

    LINE FEED
    U+000A

    LINE TABULATION
    U+000B

    FORM FEED
    U+000C

    CARRIAGE RETURN
    U+000D

    SPACE
    U+0020

    NEXT LINE
    U+0085

    NO-BREAK SPACE
    U+00A0

    OGHAM SPACE MARK
    U+1680

    EN QUAD
    U+2000

    EM QUAD
    U+2001

    EN SPACE
    U+2002

    EM SPACE
    U+2003

    THREE-PER-EM SPACE
    U+2004

    FOUR-PER-EM SPACE
    U+2005

    SIX-PER-EM SPACE
    U+2006

    FIGURE SPACE
    U+2007

    PUNCTUATION SPACE
    U+2008

    THIN SPACE
    U+2009

    HAIR SPACE
    U+200A

    LINE SEPARATOR
    U+2028

    PARAGRAPH SEPARATOR
    U+2029

    NARROW NO-BREAK SPACE
    U+202F

    MEDIUM MATHEMATICAL SPACE
    U+205F

    IDEOGRAPHIC SPACE
    U+3000


    실제로 시도하면 다음과 같습니다.
    
    final text = 'te\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFFxt'.replaceAll(RegExp(r'\s'), '');
    
    print(text);
    
    // 以下のような感じで出力されるはず
    // flutter: text
    
    // ただ、Unicode のバージョンによっては空白文字に U+0085 が含まれていないものがあるため
    // その場合は以下のように表示されます(自分のiOSシミュレーターだったらこうなりました)
    // flutter: te …xt
    
    

    참고


  • trim method
  • Whitespace character

  • 결론



    Dart 하지만 정규 표현 사용할 수 있어요!
    (정규 표현 아무것도 모르는 웃음)

    좋은 웹페이지 즐겨찾기