주요 콘텐츠로 건너뛰기
FreeOnlineTools Go
한국어
설명

정규 표현식이란? 완전한 설명

작성자: FreeOnlineTools Team · 2026-09-02에 업데이트됨

빠른 답변

정규식은 문자열 집합을 설명하는 패턴입니다. 리터럴 문자 (자신과 일치) 와 메타 문자 (*, +,?,., ^, $, [], (), {}, |,\) 를 특별한 의미로 사용합니다. 정규식은 검증, 검색, 추출 및 교체에 사용됩니다. 무료 정규식 테스터를 사용하여 브라우저의 텍스트에 대한 패턴을 테스트하세요.

소개

정규식(regex 또는 regexp)은 검색 패턴을 정의하는 일련의 문자입니다. 패턴은 문자열 검색 알고리즘에서 텍스트를 찾거나 일치시키거나 바꾸는 데 사용됩니다. 정규식은 1950년대 형식 언어 이론(Stephen Kleene)에서 시작되었으며 1970년대에 Unix 텍스트 도구(grep, sed, awk)에 채택되었습니다. 오늘날 정규식은 거의 모든 프로그래밍 언어와 텍스트 편집기에 내장되어 있습니다. Regex는 강력합니다. 이메일 형식을 검증하고, 로그에서 데이터를 추출하고, 복잡한 패턴을 찾을 수 있습니다. 하지만 구문이 조밀하고 읽기 어렵기로 악명이 높습니다.

단계별

  1. 문자 및 메타문자 이해

    문자 (a, b, 1, @) 가 일치합니다. 메타문자에는 특별한 의미가 있습니다:. 모든 문자와 일치, * 는 0 또는 그 이상을 의미, + 는 하나 이상을 의미,? 는 0 또는 그 이상을 의미, ^ 는 시작과 일치, $ 는 끝과 일치.

  2. 캐릭터 클래스 배우기

    대괄호 [] 는 문자 클래스를 정의합니다. [aeiou] 는 임의의 모음과 일치하고, [0-9] 는 임의의 자릿수와 일치하며, [^ 0-9] 는 임의의 비자릿수와 일치합니다. 단축 클래스:\ d (숫자),\ w (단어 문자),\ s (공백) 및 대문자 부정.

  3. 정량자 사용

    수량자는 패턴이 반복되는 횟수를 지정합니다: * (0+), + (1+), ? (0 또는 1), {n}(정확히 n), {n,}(n+), {n,m}(n ~ m). 기본적으로 탐욕스럽습니다. 추가하다 ? 게으른 일치(예: *?)

  4. 그룹 및 앵커

    괄호()는 캡처 그룹을 생성합니다. 교대 | 양쪽(cat|dog)과 일치합니다. 앵커 ^ 및 $는 문자열의 시작 및 끝과 일치합니다. 이를 사용하여 단순한 패턴에서 복잡한 패턴을 구축하세요.

예

이메일과 유사한 패턴 일치

입력: Pattern: [a-z]+@[a-z]+\.[a-z]+

산출: 일치: alice@example.com, bob@test.org

전화번호 형식 일치

입력: Pattern: \d{3}-\d{3}-\d{4}

산출: Matches: 555-123-4567

키-값 쌍 추출

입력: Pattern: (\w+)=(\w+)

산출: Matches 'key=value' with group 1 as key, group 2 as value

일반적인 문제

  • Greedy 매칭은 과도하게 소비됩니다. —.*는 가능한 한 많이 일치합니다. 사용 .*? 게으른 일치를 통해 가장 짧은 일치 항목을 찾습니다.
  • 특수 문자(., *, +, ? 등)를 이스케이프하는 것을 잊어버리는 것은 특별합니다. 문자 그대로 일치하려면 \를 사용합니다(예: \.는 문자 그대로 점과 일치합니다).
  • 치명적인 역추적 - 중첩된 수량자가 있는 패턴(예: (a+)+)은 특정 입력에 대해 기하급수적인 시간이 소요되어 ReDoS 공격을 유발할 수 있습니다.
  • 오버 매칭 -앵커 (^ 및 $) 가 없으면 패턴이 어디에서나 일치합니다. ^... $ 을 (를) 사용하여 전체 문자열을 일치시킵니다.

팁

  • 단순하게 시작하고 복잡성을 점진적으로 추가합니다. 복잡한 정규식을 한꺼번에 디버깅하는 것은 매우 어렵습니다.
  • 정규식 테스터를 사용하여 샘플 텍스트에 대한 패턴을 실험합니다. 실시간으로 강조 표시된 일치를 참조하십시오.
  • 확장 모드 (일부 엔진에서는/x 플래그) 를 사용하여 복잡한 정규 표현식을 코멘트하거나 명명된 부품으로 나눕니다.
  • Regex 테스터를 사용하여 브라우저에서 즉시 패턴을 테스트할 수 있습니다. 가입하지 않고 완전히 비공개로 설정할 수 있습니다.

관련 도구

관련 가이드

참고자료