정규식 테스터/ 실시간 매칭

실시간 매칭 하이라이트, 캡처 그룹 세부 정보, 교체 모드, 일반적인 패턴 내장. 로컬 처리.

//
자주 사용:
테스트 문자열

위에 패턴을 입력하세요.

이 도구가 도움이 되었나요?

정규식 테스터란

정규식 테스터는 개발자가 정규 표현식을 실시간으로 테스트하고 디버그할 수 있게 해주며, 매칭 결과, 캡처 그룹, 교체 효과를 즉시 확인할 수 있습니다.

정규식의 일반적인 사용 사례

폼 유효성 검사: 이메일, 전화번호, ID 형식 확인. 데이터 추출: 텍스트에서 특정 패턴의 정보 추출. 텍스트 교체: 패턴 매칭 텍스트 일괄 교체. 로그 분석: 특정 조건에 맞는 로그 줄 필터링.

코드 예제

JavaScript
const re = /(?<year>\d{4})-(\d{2})/g;
const str = "2024-03 and 2025-01";

for (const m of str.matchAll(re)) {
  console.log(m[0]);          // "2024-03"
  console.log(m.groups.year); // "2024"
  console.log(m[2]);          // "03"
  console.log(m.index);       // 0
}
Python
import re

pattern = r"(?P<year>\d{4})-(\d{2})"
text = "2024-03 and 2025-01"

for m in re.finditer(pattern, text):
    print(m.group(0))         // "2024-03"
    print(m.group("year"))    // "2024"
    print(m.group(2))         // "03"
    print(m.start())          // 0
Go
import "regexp"

re := regexp.MustCompile(
  `(?P<year>\d{4})-(\d{2})`,
)
text := "2024-03 and 2025-01"

matches := re.FindAllStringSubmatch(
  text, -1,
)
// matches[0][0] = "2024-03"
// matches[0][1] = "2024"  (year)
// matches[0][2] = "03"
Rust
use regex::Regex;

let re = Regex::new(
  r"(?P<year>\d{4})-(\d{2})"
).unwrap();
let text = "2024-03 and 2025-01";

for cap in re.captures_iter(text) {
    println!("{}", &cap[0]);  // "2024-03"
    println!("{}", &cap["year"]); // "2024"
    println!("{}", &cap[2]);  // "03"
}

자주 묻는 질문

정규식 플래그의 역할은?
g(글로벌)는 첫 번째만이 아닌 모두 검색; i(대소문자 무시); m(멀티라인)은 ^와 $가 각 줄의 시작과 끝에 매칭; s(dotAll)는 .이 줄바꿈에도 매칭.
캡처 그룹을 참조하는 방법은?
괄호 ()로 캡처 그룹을 만들고, 교체 필드에서 $1, $2로 참조. 예: 패턴 (\d{4})-(\d{2})를 $2/$1로 교체하면 2024-03이 03/2024로. 명명된 그룹 (?<name>…)은 $<name>으로 참조.
매칭 결과의 '위치' 의미는?
위치(index)는 원본 문자열에서 매칭이 시작되는 문자 오프셋이며, 0부터 시작합니다. 프로그래밍에서 유용하며 String.prototype.slice()나 문자열 교체 작업에 직접 사용할 수 있습니다.
중국어 문자에 매칭하는 방법은?
단일 한자에는 [\u4e00-\u9fff] 사용. 더 넓은 범위: [\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]. u 플래그를 활성화하면 \p{Script=Han}로 모든 한자에 매칭(Unicode 속성 이스케이프).
제로 폭 어설션이란?
제로 폭 어설션은 위치에 매칭하며 문자를 소비하지 않습니다: 긍정적 선행 (?=…)은 오른쪽이 조건을 만족해야; 부정적 선행 (?!…)은 오른쪽이 조건을 만족하지 않아야; 긍정적 후행 (?<=…)은 왼쪽이 조건을 만족해야.
정규식이 무한 루프가 되는 이유는?
g 플래그 사용 시 빈 문자열에 매칭되는 패턴(a*나 .*)은 빈 매칭 후 lastIndex가 진행되지 않아 무한 루프 발생. 이 도구는 빈 매칭 후 lastIndex를 자동으로 진행하고 최대 2000회 매칭으로 제한합니다.