Regex 테스터
임의의 문자열에 JavaScript 정규식을 적용하고 매치를 실시간으로 강조 표시. 그룹, 플래그, 위치는 아래 리스트에 표시됩니다.
브라우저의 네이티브 RegExp를 사용하므로, 여기서 동작하는 것은 JavaScript 코드에서도 그대로 동작합니다.
강조
Highlighted matches will appear here.
매치
Match list with capture groups will appear here.
JavaScript 플레이버
이 테스터는 브라우저의 네이티브 RegExp를 사용합니다. ECMAScript 정규식 문법을 지원하며, 이는 PCRE (PHP, Perl) 나 Python re와 같지 않습니다. 다른 엔진에서 알고 있는 일부 구성 요소는 사용할 수 없거나 다르게 동작합니다:
- No possessive quantifiers (
a*+,a++). - No atomic groups
(?>...). - No conditional patterns
(?(1)yes|no). - Lookbehind
(?<=...)is supported in modern browsers but can fail in older engines. - Named groups use
(?<name>...)(not(?P<name>...)like Python).
플래그 레퍼런스
g— return all matches, not just the first.i— case-insensitive match.m—^and$match at line breaks, not only string edges.s— dot.also matches newlines.u— full Unicode mode;\p{...}property escapes enabled.y— sticky: match must start exactly atlastIndex.
예시
위 필드에 붙여넣어 동작을 확인할 수 있는 몇 가지 패턴:
\d{4}-\d{2}-\d{2} # ISO-like dates
[\w.+-]+@[\w-]+\.[\w.-]+ # rough email
^https?:\/\/\S+ # URL at line start (needs m flag)
(?<year>\d{4})-(?<mo>\d{2}) # named groups자주 묻는 질문
PHP/Python에서 동작하는 패턴이 여기서 실패하는 이유는?
이 테스터는 패턴을 브라우저의 RegExp (ECMAScript 플레이버) 로 실행합니다. PCRE 전용 기능 (소유 한정자, 원자 그룹, 조건 패턴) 은 지원되지 않습니다. 패턴을 ECMAScript 호환 형태로 다시 작성하세요.
패턴이 잠시 페이지를 멈추게 했어요. 왜죠?
JavaScript의 정규식 엔진은 단일 스레드이며 (a+)+$처럼 중첩 한정자가 있는 catastrophic backtracking 패턴에서 느려질 수 있습니다. 도구는 매치 목록을 1000개로 제한해 피해를 줄이지만, 매치 자체는 페이지 안에서 실행됩니다.
여러 줄에 걸쳐 매치하려면?
.가 줄바꿈에도 매치되게 하려면 s 플래그를, ^/$가 각 줄에 고정되게 하려면 m 플래그를 사용하세요.
패턴과 테스트 텍스트가 어딘가로 전송되나요?
아니요. 정규식은 전적으로 브라우저에서 실행됩니다. 어떤 것도 업로드되지 않습니다.