샘플로 정규식 생성

주문 번호, 청구서 참조 번호, 날짜 같은 것을 위한 정규식을 손으로 작성하는 일은 번거롭고 틀리기 쉽습니다. 인식하려는 형식의 예시 문자열 하나를 붙여넣으면, 이 도구가 왼쪽에서 오른쪽으로 읽어 숫자, 대문자, 소문자의 각 연속을 알맞은 길이의 문자 클래스로 바꾸고, 구두점과 기호는 리터럴 문자로 남깁니다. 출발점이 되는 앵커가 붙은 패턴을 얻어 손으로 다듬을 수 있습니다.

작동 방식

  1. 1

    샘플 입력

    인식하려는 형식을 대표하는 예시 문자열 하나를 입력하거나 붙여넣으세요. 예를 들어 `Order #12345 placed on 2026-04-16` 처럼요.

  2. 2

    패턴 생성

    도구가 샘플을 한 글자씩 훑으며, 같은 종류 문자의 각 연속을 그 길이를 가진 문자 클래스로 바꿉니다.

  3. 3

    분해 내용 읽기

    패턴 아래의 구성 요소 목록이 각 부분을 설명하므로, 어느 부분이 숫자, 문자, 리터럴 텍스트를 인식했는지 볼 수 있습니다.

  4. 4

    복사하고 다듬기

    패턴을 출발점으로 사용하세요. 고정된 길이나 클래스를 손으로 조정해 실제 데이터의 전체 범위에 맞추세요.

패턴이 만들어지는 방식

도구는 샘플을 왼쪽에서 오른쪽으로 읽습니다. 같은 종류 문자의 연속을 만날 때마다, 그 연속의 크기에 맞는 문자 클래스를 내보냅니다.

  • 숫자의 연속은 \d{n} 이 됩니다. 여기서 n 은 숫자의 개수입니다
  • 대문자 A-Z 의 연속은 [A-Z]{n} 이 됩니다
  • 소문자 a-z 의 연속은 [a-z]{n} 이 됩니다
  • 하나의 공백은 \s, 여러 공백은 \s{n} 이 됩니다
  • 그 밖의 모든 것(구두점, 기호, 악센트가 있는 문자나 비라틴 문자)은 이스케이프된 리터럴 문자로 남습니다

완성된 패턴은 ^$ 로 감싸여, 일부가 아니라 문자열 전체를 처음부터 끝까지 인식합니다.

예시

예시 문자열 Order #12345 placed on 2026-04-16 에 대해 도구는 다음을 생성합니다.

/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/

Order 는 대문자 하나 뒤에 소문자 네 개, 12345\d{5}, 날짜 2026-04-16\d{4}\-\d{2}\-\d{2} 이 됩니다.

할 수 있는 것과 없는 것

  • 길이는 고정입니다. 12345\d{5} 가 되어 “하나 이상”이 아니라 정확히 다섯 자리 숫자를 인식합니다. 데이터에서 개수가 달라지면 {5} 를 손으로 +{3,8} 같은 범위로 바꾸세요.
  • 하나의 샘플로 동작합니다. 당신이 준 하나의 문자열 구조를 반영하므로, 여러 예시로부터 스스로 일반화하지 못합니다. 가장 대표적인 문자열을 주세요.
  • 문자로 세는 것은 A-Za-z 뿐입니다. 악센트가 있는 문자와 비라틴 문자는 리터럴로 남습니다. 더 넓은 집합을 인식하게 하려면 \w\p{L} 같은 클래스로 바꾸세요.
  • 정규식이 모든 것을 표현할 수는 없습니다. 균형 잡힌 괄호 같은 것은 예시를 아무리 많이 줘도 어떤 정규식의 범위도 벗어납니다. 중첩 구조에는 패턴이 아니라 파서가 필요합니다.

좋은 작업 흐름

  1. 명확하고 대표적인 하나의 샘플로 패턴을 생성합니다.
  2. 길이가 달라지는 곳에서 고정 길이를 완화합니다({5}+{3,8} 로).
  3. 더 큰 실제 문자열 집합과 함께 패턴을 정규식 테스터에 붙여넣습니다.
  4. 인식해야 할 모든 것을 인식하고 인식하지 말아야 할 것은 하나도 인식하지 않을 때까지 조정합니다.

자주 묻는 질문

하나입니다. 생성기는 하나의 예시 문자열을 읽어 그 구조를 반영합니다. 형식을 가장 잘 대표하는 문자열을 고른 다음, 나머지 경우는 패턴을 손으로 넓히세요.

도구는 샘플의 정확한 문자 수를 세므로 다섯 자리 숫자는 \d{5} 가 됩니다. 실제 데이터에서 개수가 달라지면 {5}+, *, 또는 {3,8} 같은 범위로 바꾸세요.

앵커는 패턴이 문자열 전체를 처음부터 끝까지 인식하게 합니다. 더 긴 텍스트 안에서 패턴을 찾고 싶다면 이들을 제거하세요.

A-Za-z 를 문자로 인식합니다. 악센트가 있는 문자, 키릴 문자, CJK 를 포함한 그 밖의 모든 문자는 리터럴로 남습니다. 더 많이 인식하게 하려면 \w\p{L} 같은 클래스로 손수 바꾸세요.

PCRE, JavaScript, Python 및 대부분의 엔진에서 수정 없이 동작하는 표준 구문(\d, [A-Z], {n})입니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다