정규식 테스터/ 실시간 매칭
실시간 매칭 하이라이트, 캡처 그룹 세부 정보, 교체 모드, 일반적인 패턴 내장. 로컬 처리.
//
자주 사용:
테스트 문자열
위에 패턴을 입력하세요.
이 도구가 도움이 되었나요?
정규식 테스터란
정규식 테스터는 개발자가 정규 표현식을 실시간으로 테스트하고 디버그할 수 있게 해주며, 매칭 결과, 캡처 그룹, 교체 효과를 즉시 확인할 수 있습니다.
정규식의 일반적인 사용 사례
폼 유효성 검사: 이메일, 전화번호, 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()) // 0Go
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회 매칭으로 제한합니다.