정규 표현식(regex)은 텍스트를 찾고, 매칭하고, 추출하기 위한 강력한 패턴입니다. 프로그래밍, 데이터 유효성 검사, 검색 및 바꾸기 작업, 로그 분석에 사용됩니다. 문제는 정규식 구문이 정확하게 작성하기 까다로울 수 있다는 것입니다. 무료 정규식 테스터를 사용하면 실시간으로 실험하여 패턴이 정확히 무엇을 매칭하는지 확인할 수 있습니다.
필요한 것
- 테스트하려는 패턴, 또는 해결하려는 텍스트 매칭 문제
- 웹 브라우저 (Chrome, Firefox, Safari 또는 Edge)
- 계정이나 설치 불필요
단계별 가이드
정규식 테스터 열기
정규식 테스터 도구로 이동하세요. 두 개의 주요 영역이 보입니다: 정규 표현식 패턴용과 매칭할 테스트 텍스트용입니다.
정규식 패턴 작성하기
패턴 필드에 정규 표현식을 입력하세요. 간단하게 시작하여 복잡성을 높여가세요. 예를 들어, 정확한 텍스트를 매칭하기 위해 hello와 같은 리터럴 단어부터 시작한 다음, 특수 문자로 패턴을 세분화하여 더 넓은 패턴을 매칭하세요.
테스트 텍스트 입력하기
테스트 영역에 샘플 텍스트를 붙여넣거나 입력하세요. 매칭되어야 하는 예시와 매칭되지 않아야 하는 예시를 모두 포함하세요. 도구는 입력할 때 실시간으로 모든 매치를 강조 표시하므로 패턴이 올바르게 작동하는지 즉시 확인할 수 있습니다.
세분화 및 검증하기
패턴을 조정하고 매치가 즉시 업데이트되는 것을 지켜보세요. 테스트 텍스트에 엣지 케이스(특이한 입력, 경계 조건, 까다로운 형식)를 추가하여 정규식이 이를 올바르게 처리하는지 확인하세요. 만족하면 패턴을 코드나 도구에 복사하세요.
참고 정규식 테스터는 완전히 브라우저에서 실행됩니다. 데이터가 서버로 전송되지 않으므로 이메일 주소, 로그 파일 또는 개인 데이터와 같은 민감한 텍스트에 대해 안전하게 패턴을 테스트할 수 있습니다.
필수 정규식 구문
| 기호 | 의미 | 예시 |
|---|---|---|
. |
임의의 단일 문자 | h.t는 "hat", "hit", "hot"에 매칭 |
* |
이전 요소의 0회 이상 | ab*c는 "ac", "abc", "abbc"에 매칭 |
+ |
이전 요소의 1회 이상 | ab+c는 "abc", "abbc"에 매칭하지만 "ac"에는 안됨 |
? |
이전 요소의 0회 또는 1회 | colou?r는 "color"와 "colour"에 매칭 |
\d |
임의의 숫자 (0-9) | \d{3}는 "123", "456"에 매칭 |
\w |
임의의 단어 문자 | \w+는 "hello", "test123"에 매칭 |
\s |
임의의 공백 | hello\sworld는 "hello world"에 매칭 |
^ |
문자열 시작 | ^Hello는 "Hello world"에 매칭 |
$ |
문자열 끝 | world$는 "Hello world"에 매칭 |
[abc] |
세트 내 임의의 문자 | [aeiou]는 모든 모음에 매칭 |
(...) |
캡처 그룹 | (ab)+는 "ab", "abab"에 매칭 |
시도해 볼 수 있는 일반적인 패턴
이 패턴들을 정규식 테스터에 복사하여 실험해 보세요.
이메일 주소
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
user@example.com이나 first.last@company.co.uk와 같은 표준 이메일 형식에 매칭됩니다. 유효한 이메일과 유효하지 않은 이메일 형식 모두로 테스트하여 엣지 케이스를 어떻게 처리하는지 확인하세요.
URL
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
https://example.com이나 http://site.org/path/page와 같은 HTTP 및 HTTPS URL에 매칭됩니다. s?는 "https"의 "s"를 선택적으로 만듭니다.
전화번호 (미국 형식)
(\+1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
다양한 미국 전화번호 형식에 매칭됩니다: (555) 123-4567, 555-123-4567, +1 555.123.4567 및 유사한 변형.
팁 정규식을 만들 때, 대상 텍스트에 매칭되는 가장 간단한 패턴부터 시작한 다음 제약 조건을 하나씩 추가하세요. 복잡한 정규식을 한 번에 작성하려고 하는 것보다 실시간으로 매치가 업데이트되는 것을 보면서 점진적으로 구축하는 것이 훨씬 쉽습니다.
일반적인 실수와 해결 방법
특수 문자를 이스케이프하는 것을 잊는 경우. ., *, +, ?, (, ), [, ], {, }와 같은 문자는 정규식에서 특별한 의미를 가집니다. 리터럴로 매칭하려면 백슬래시를 앞에 붙이세요: \.는 마침표에 매칭, \(는 괄호에 매칭.
너무 탐욕적인 매칭. 기본적으로 *와 +는 가능한 한 많은 텍스트를 매칭합니다. 가장 짧은 매치를 원한다면 뒤에 ?를 추가하세요: .*?는 가능한 한 적게 매칭합니다.
패턴에 앵커를 달지 않는 경우. ^와 $ 없이, \d{3}와 같은 패턴은 더 긴 숫자 안에 있는 연속 세 자리 숫자를 포함하여 문자열 어디에서나 매칭합니다. 전체 문자열을 매칭해야 할 때 앵커를 사용하세요.
중요 정규식 구문은 프로그래밍 언어와 도구에 따라 약간 다릅니다. JavaScript에서 작동하는 패턴이 Python이나 PHP에서는 다르게 동작할 수 있습니다. 사용할 언어나 환경에서 항상 최종 패턴을 테스트하세요.
자주 묻는 질문
정규식 플래그란 무엇인가요?
플래그는 패턴이 적용되는 방식을 수정합니다. 일반적인 플래그로는 g(전역 — 첫 번째뿐만 아니라 모든 매치 찾기), i(대소문자 구분 없음), m(멀티라인 — ^와 $가 문자열 경계가 아닌 줄 경계에 매칭)이 있습니다. 정규식 테스터에서 이러한 플래그를 전환할 수 있습니다.
검색 및 바꾸기에 정규식을 사용할 수 있나요?
네. 대부분의 텍스트 편집기와 프로그래밍 언어는 정규식 기반 찾기 및 바꾸기를 지원합니다. 캡처 그룹 (...)을 사용하면 대체 문자열에서 매칭된 텍스트를 참조할 수 있습니다.
여러 줄에 걸쳐 매칭하려면 어떻게 하나요?
s(dotall) 플래그를 사용하여 .이 줄 바꿈 문자에 매칭되도록 하거나, 줄 바꿈을 포함한 모든 문자에 매칭되는 크로스 플랫폼 대안인 [\s\S]를 사용하세요.
다음 단계
이제 정규식 패턴을 구축하고 테스트할 수 있으니, 코드, 텍스트 편집기 또는 명령줄 도구에서 사용해 보세요. 다른 개발자 유틸리티에 대해서는 스케줄링 표현식을 위한 Cron 파서나 구조화된 데이터 작업을 위한 JSON 포맷터를 확인해 보세요.