본문 바로가기
Dart/Dart Programming language

[추가학습] 정규 표현식(Regex) 작성 방법: 초보자를 위한 가이드

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

 

오늘은 정규 표현식, 즉 Regex의 작성 방법에 대해 알아보겠습니다.

정규 표현식은 문자열을 검색하고 조작하는 데 매우 유용한 도구입니다. 이 글을 통해 정규 표현식의 기본 구조와 작성 방법을 쉽게 이해할 수 있도록 설명하겠습니다.

1. 정규 표현식이란?

정규 표현식은 특정 패턴을 가진 문자열을 찾거나, 그 문자열이 특정 형식인지 확인하는 데 사용됩니다.

예를 들어, 이메일 주소, 전화번호, 우편번호 등을 검증할 때 유용합니다.

2. 정규 표현식의 기본 구조

정규 표현식은 여러 기호와 문자를 조합하여 패턴을 형성합니다. 기본적인 구성 요소는 다음과 같습니다.

2.1 문자 클래스

문자 클래스는 대괄호 []를 사용하여 특정 문자 집합을 정의합니다.

예를 들어, [abc]는 'a', 'b', 또는 'c' 중 하나의 문자를 나타냅니다. 다음은 문자 클래스의 몇 가지 예입니다.

  • [0-9]: 숫자 0에서 9까지
  • [a-z]: 소문자 알파벳
  • [A-Z]: 대문자 알파벳
  • [a-zA-Z]: 모든 알파벳 문자

2.2 메타 문자

메타 문자는 정규 표현식에서 특별한 의미를 가지는 문자들입니다. 몇 가지 중요한 메타 문자는 다음과 같습니다.

  • .: 임의의 단일 문자
  • ^: 문자열의 시작
  • $: 문자열의 끝
  • *: 0회 이상의 반복
  • +: 1회 이상의 반복
  • ?: 0회 또는 1회

예를 들어, ^a는 'a'로 시작하는 문자열을 의미하고, b$는 'b'로 끝나는 문자열을 의미합니다.

2.3 이스케이프 문자

특별한 의미가 있는 문자를 일반 문자로 사용하고 싶다면 백슬래시 \를 사용하여 이스케이프합니다.

예를 들어, \.는 마침표(.)를 의미합니다.

3. 정규 표현식 작성 예제

이제 몇 가지 정규 표현식 예제를 통해 실제로 어떻게 작성하는지 알아봅시다.

3.1 이메일 주소 검증

이메일 주소 형식을 검증하는 정규 표현식은 다음과 같이 작성할 수 있습니다:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

이 표현식은 다음을 의미합니다.

  • ^: 문자열의 시작
  • [a-zA-Z0-9._%+-]+: 하나 이상의 영문자, 숫자, 또는 특정 기호
  • @: '@' 기호
  • [a-zA-Z0-9.-]+: 도메인 이름 부분
  • \.: 마침표
  • [a-zA-Z]{2,}: 2개 이상의 영문자
  • $: 문자열의 끝

3.2 전화번호 검증

한국의 전화번호 형식을 검증하는 정규 표현식은 다음과 같이 작성할 수 있습니다:

^\d{3}-\d{4}-\d{4}$

이 표현식은 다음을 의미합니다.

  • ^: 문자열의 시작
  • \d{3}: 3개의 숫자
  • -: 하이픈
  • \d{4}: 4개의 숫자
  • -: 하이픈
  • \d{4}: 4개의 숫자
  • $: 문자열의 끝

3.3 URL 검증

URL을 검증하는 정규 표현식은 다음과 같습니다:

^(https?://)?(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(/.*)?$

이 표현식은 다음을 의미합니다.

  • ^: 문자열의 시작
  • (https?://)?: 'http://' 또는 'https://' (있거나 없을 수 있음)
  • (www\.)?: 'www.' (있거나 없을 수 있음)
  • [a-zA-Z0-9-]+: 도메인 이름 부분
  • \.: 마침표
  • [a-zA-Z]{2,}: 2개 이상의 영문자
  • (/.*)?: 슬래시와 그 뒤에 오는 모든 문자 (있거나 없을 수 있음)
  • $: 문자열의 끝

 

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

여러 기호와 문자를 조합하여 원하는 패턴을 만들 수 있으며, 다양한 상황에서 유용하게 사용됩니다.

처음에는 복잡하게 느껴질 수 있지만, 연습을 통해 충분히 익숙해질 수 있습니다. 다양한 패턴을 시도해보며 실력을 키워보세요!

 

이 글이 정규 표현식을 이해하는 데 도움이 되었기를 바랍니다.

질문이 있다면 댓글로 남겨주세요!

구독!! 공감과 댓글,

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

 

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
반응형