정규 표현식 입문 가이드

일반적으로 regex 또는 regexp로 알려진 정규식은 검색 패턴을 형성하는 문자 시퀀스입니다. 주로 문자열 일치 및 조작에 사용됩니다. Regex는 텍스트에서 데이터를 검색, 교체 및 추출하는 데 매우 강력합니다.

기본 구문

정규식은 리터럴 문자와 메타문자라는 특수 문자의 조합으로 구성됩니다. 다음은 몇 가지 기본 구성 요소입니다.

  • 리터럴 문자: 이는 자신과 일치하는 일반 문자입니다. 예를 들어 정규식 cat는 문자열 "cat"과 일치합니다.
  • 메타문자: 이 문자는 특별한 의미를 가지며 복잡한 패턴을 만드는 데 사용됩니다. 예에는 ., *, +, ?, [], {}, ()|.

일반적인 메타 문자

다음은 가장 일반적으로 사용되는 메타 문자와 해당 기능 중 일부입니다.

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

기본 패턴의 예

예제를 통해 몇 가지 기본 정규식 패턴을 살펴보겠습니다.

cat

텍스트의 어느 위치에서나 문자열 "cat"과 일치합니다.

.at

"a" 뒤에 임의의 문자와 "t"가 포함된 모든 문자열과 일치합니다. 예를 들어, "cat", "bat", "hat"입니다.

\d{3}

정확히 세 자리 숫자와 일치합니다. 예를 들어, "123", "456", "789"입니다.

[a-z]

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

(dog|cat)

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

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

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

파이썬 예제

import re

# Search for 'cat' in a string
pattern = r'cat'
text = 'The cat sat on the mat.'
match = re.search(pattern, text)

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

자바스크립트 예

// Search for 'cat' in a string
const pattern = /cat/;
const text = 'The cat sat on the mat.';
const match = text.match(pattern);

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

결론

정규식은 텍스트 처리 및 데이터 추출을 위한 강력한 도구입니다. 기본 구문과 일반적인 패턴을 이해함으로써 프로젝트에서 정규식을 활용하여 텍스트 조작 기능을 간소화하고 향상시킬 수 있습니다. 다양한 패턴으로 연습하고 정규식의 고급 기능을 탐색하여 더욱 능숙해집니다.