Flutter/Dart - 문자열에서 특수문자 제거

문자열에서 특수 문자만 제거하는 방법을 소개합니다.

1. 정규표현식(Regex)으로 특수 문자 제거

replaceAll(regex, replacement)는 문자열에서 정규표현식 패턴 regex에 해당하는 문자들을 찾고 replacement로 변경합니다.

  • 정규표현식은 RegExp(pattern)와 같이 객체를 생성할 수 있으며, pattern에 일치하는 문자들을 찾을 수 있습니다.
  • [^a-zA-Z0-9가-힣\\s]는 영어, 한국어, 숫자, 띄어쓰기를 제외한 다른 문자에 해당하는 패턴입니다.

아래와 같이 문자열에서 영어, 한국어, 숫자, 띄어쓰기를 제외한, 다른 문자들을 제거할 수 있습니다.

void main() {

    String str = "AA**BB#@!CC 가나다-123";

    String result = str.replaceAll(RegExp('[^a-zA-Z0-9가-힣\\s]'), "");
    print(result);
}

Output:

AABBCC 가나다123

1.1 일본어 제거하지 않기

특수 문자를 제거할 때, 영어, 한국어를 포함하여 일본어도 제거하지 않으려면 아래와 같은 정규표현식을 구현하면 됩니다.

void main() {

    String str = "AA**BB#@!CC 가나다-123文字列から数字のみを抽出する方法";

    String result = str.replaceAll(RegExp('[^a-zA-Z0-9가-힣\\sぁ-ゔァ-ヴー々〆〤一-龥]'), "");
    print(result);
}

Output:

AABBCC 가나다123文字列から数字のみを抽出する方法

2. 영어, 숫자를 제외한 다른 문자 제거

아래와 같이 [^a-zA-Z0-9\\s] 패턴으로, 영어와 숫자를 제외한 다른 문자들을 찾아서 제거할 수 있습니다.

void main() {

    String str = "AA**BB#@!CC 가나다-123文字列から数字のみを抽出する方法";

    String result = str.replaceAll(RegExp('[^a-zA-Z0-9\\s]'), "");
    print(result);
}

Output:

AABBCC 123

3. 일본어를 제외한 다른 문자 제거

아래와 같이 일본어를 제외한, 다른 언어 및 문자들을 정규표현식 패턴으로 찾아서 제거할 수 있습니다.

void main() {

    String str = "AA**BB#@!CC 가나다-123文字列から数字のみを抽出する方法";

    String result = str.replaceAll(RegExp('[^ぁ-ゔァ-ヴー々〆〤一-龥]'), "");
    print(result);
}

Output:

文字列から数字のみを抽出する方法
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha