초보자를 위한 정규 표현식 튜토리얼

종종 regex 또는 regexp로 축약되는 정규식은 검색 패턴을 정의하는 문자 시퀀스입니다. 일반적으로 문자열 일치, 하위 문자열 교체, 텍스트에서 정보 추출에 사용됩니다.

정규식을 왜 배워야 할까요?

정규식을 배우면 텍스트 데이터를 처리하는 능력이 크게 향상될 수 있습니다. 정규식을 사용하면 다음을 수행할 수 있습니다.

  • 텍스트 내에서 특정 패턴을 검색합니다.
  • 이메일 주소, 전화번호 등 입력 데이터의 유효성을 검사합니다.
  • 날짜, URL 등 텍스트의 특정 부분을 추출합니다.
  • 패턴을 기반으로 텍스트 내의 하위 문자열을 바꿉니다.

정규식의 기본 구성요소

Regex는 리터럴 문자와 메타 문자로 구성됩니다. 다음은 기본 구성 요소 중 일부입니다.

  • 리터럴 문자: 자신과 일치하는 문자입니다. 예를 들어 a은 "a"과 일치합니다.
  • 메타 문자:., *, +, ? 등 특정 의미를 지닌 특수 문자입니다.

일반적인 메타 문자와 그 의미

정규식을 익히려면 메타문자를 이해하는 것이 중요합니다. 가장 일반적으로 사용되는 것들은 다음과 같습니다:

  • . - 개행 문자를 제외한 모든 단일 문자와 일치합니다.
  • * - 이전 요소의 0개 이상의 반복과 일치합니다.
  • + - 이전 요소가 1회 이상 반복되는 것과 일치합니다.
  • ? - 이전 요소의 0 또는 1 반복과 일치합니다.
  • [] - 대괄호 안의 문자 중 하나와 일치합니다.
  • {} - 이전 요소의 특정 발생 횟수를 지정합니다.
  • () - 여러 토큰을 함께 그룹화하고 캡처 그룹을 만듭니다.
  • | - OR 연산자 역할을 합니다.

예제가 포함된 기본 정규식 패턴

몇 가지 기본 정규식 패턴과 작동 방식을 살펴보겠습니다.

cat

정확한 문자열 "cat"와 일치합니다.

.at

"cat", "bat", "hat"와 같이 "at"이 뒤에 오는 단일 문자를 포함하는 모든 문자열과 일치합니다.

\d{3}

"123", "456", "789"과 같이 정확히 세 자리 숫자와 일치합니다.

[a-z]

"a"에서 "z"까지의 모든 소문자와 일치합니다.

(dog|cat)

"dog" 또는 "cat"와 일치합니다.

프로그래밍 언어에서 정규식 사용

정규식은 다양한 프로그래밍 언어에서 널리 지원됩니다. 다음은 Python 및 JavaScript에서 정규식을 사용하는 예입니다.

파이썬 예제

import re

# Search for 'dog' in a string
pattern = r'dog'
text = 'The dog barked loudly.'
match = re.search(pattern, text)

if match:
    print('Match found:', match.group())
else:
    print('No match found')

자바스크립트 예

// Search for 'dog' in a string
const pattern = /dog/;
const text = 'The dog barked loudly.';
const match = text.match(pattern);

if (match) {
    console.log('Match found:', match[0]);
} else {
    console.log('No match found');
}

결론

정규식은 텍스트 처리를 다루는 모든 사람에게 강력한 도구입니다. 기본 구성 요소와 패턴을 이해하고 연습함으로써 프로그래밍 프로젝트에서 텍스트를 처리하고 조작하는 능력을 크게 향상시킬 수 있습니다. 다양한 패턴을 실험하고 지식을 심화하여 정규식의 잠재력을 최대한 활용하세요.