본문 바로가기
Dart/Dart Programming language

[추가학습] Dart에서 정규 표현식(Regex) 쉽게 배우기

by Maccrey Coding 2024. 10. 20.
728x90
반응형

 

오늘은 Dart에서 정규 표현식, 즉 Regex에 대해 쉽게 알아보겠습니다.

정규 표현식은 문자열을 찾고, 검사하고, 조작하는 데 매우 유용한 도구입니다. 함께 간단히 살펴볼까요?

1. 정규 표현식이란?

정규 표현식은 특정 패턴을 가진 문자열을 표현하는 방법입니다.

예를 들어, 이메일 주소, 전화번호, 또는 특정 형식의 단어 등을 찾을 때 사용합니다. Dart에서도 정규 표현식을 쉽게 사용할 수 있습니다.

2. Dart에서 정규 표현식 사용하기

Dart에서 정규 표현식을 사용하려면 RegExp 클래스를 사용합니다. 아래는 Dart에서 정규 표현식을 사용하는 방법입니다.

2.1 RegExp 클래스 생성하기

먼저, 정규 표현식을 생성해야 합니다. 아래와 같이 간단한 예제를 보세요.

void main() {
  // 정규 표현식 생성
  RegExp regex = RegExp(r'\d+'); // 숫자 1개 이상
  String text = "I have 2 apples and 10 oranges.";
  
  // 정규 표현식으로 문자열 검색
  Iterable<Match> matches = regex.allMatches(text);
  
  for (var match in matches) {
    print("Found number: ${match.group(0)}"); // 찾은 숫자 출력
  }
}

위 코드에서 r'\d+'는 "숫자 1개 이상"이라는 의미입니다. \d는 숫자를 나타내고, +는 "1개 이상"이라는 의미입니다.

2.2 이메일 주소 검증하기

정규 표현식은 이메일 주소를 검증하는 데도 사용됩니다. 다음 코드는 이메일 주소의 유효성을 확인하는 예제입니다.

void main() {
  String email = "example@mail.com";
  RegExp emailRegex = RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$');
  
  if (emailRegex.hasMatch(email)) {
    print("Valid email address");
  } else {
    print("Invalid email address");
  }
}

여기서 r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'는 이메일 형식을 나타내는 정규 표현식입니다.

^는 문자열의 시작을, $는 문자열의 끝을 나타내므로 전체 문자열이 이 패턴과 일치해야 합니다.

2.3 전화번호 검증하기

전화번호도 정규 표현식을 사용하여 검증할 수 있습니다. 아래는 한국의 전화번호 형식을 검사하는 예제입니다.

void main() {
  String phoneNumber = "010-1234-5678";
  RegExp phoneRegex = RegExp(r'^\d{3}-\d{4}-\d{4}$');
  
  if (phoneRegex.hasMatch(phoneNumber)) {
    print("Valid phone number");
  } else {
    print("Invalid phone number");
  }
}

위의 코드에서 r'^\d{3}-\d{4}-\d{4}$'는 "세 자리 숫자-네 자리 숫자-네 자리 숫자" 형식을 나타냅니다.

2.4 정규 표현식의 유용한 메서드

Dart에서 정규 표현식을 사용할 때 유용한 몇 가지 메서드도 알아봅시다.

  • hasMatch(String input): 입력 문자열이 정규 표현식과 일치하는지 여부를 반환합니다.
  • firstMatch(String input): 입력 문자열에서 첫 번째 일치를 찾습니다.
  • allMatches(String input): 입력 문자열에서 모든 일치를 찾습니다.
  • replaceAll(String input, String replacement): 입력 문자열에서 정규 표현식과 일치하는 모든 부분을 대체합니다.

예를 들어, 문자열에서 모든 숫자를 제거하는 방법은 다음과 같습니다.

void main() {
  String text = "I have 2 apples and 10 oranges.";
  RegExp regex = RegExp(r'\d+');
  
  String result = text.replaceAll(regex, '');
  print(result); // "I have  apples and  oranges."
}

정규 표현식은 문자열을 다룰 때 매우 유용한 도구입니다.

Dart에서도 쉽게 사용할 수 있으니, 다양한 패턴을 연습해보며 익숙해지는 것이 좋습니다.

정규 표현식을 잘 활용하면 데이터 검증이나 텍스트 처리에서 많은 도움이 될 것입니다.

정규표현식 작성방법

 

이 글이 Dart에서 정규 표현식을 이해하는 데 도움이 되었기를 바랍니다! 질문이 있다면 언제든지 댓글로 남겨주세요.

 

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

728x90
반응형