정규식 테스터
Regex Tester
정규식을 예시 텍스트에 적용해 일치 부분을 실시간으로 강조하고 캡처 그룹을 보여 줍니다.
정규식을 예시 텍스트에 실행해서, 일치하는 곳마다 위치와 캡처 그룹, 그리고 치환하면 나올 결과까지 보여 줍니다. 브라우저의 엔진을 그대로 쓰기 때문에 여기서 일어나는 일이 실제 JavaScript에서 일어나는 일입니다.
패턴
문자열 어디서든 일치 가능, 캡처 그룹 2개.
시험할 텍스트
일치하는 것을 모두 나열합니다. `g` 플래그가 없으면 `String.replace`는 첫 번째만 씁니다.
0곳 일치
걸린 시간
0.0 ms
ask@example.com, 문의@example.co.kr and no-reply+tag@mail.example.org치환
`$1`, `$<name>`, `$&`, `` $` ``, `$'`, `$$`가 모두 확장됩니다. `String.replace`가 확장하는 방식 그대로입니다.
사용 방법
패턴을 쓰고 플래그를 켭니다
중요한 여섯 개를 버튼으로 뒀습니다. global, ignore case, multiline, dotAll, unicode, sticky입니다. 위쪽 리터럴이 코드에 그대로 붙여넣을 형태입니다.
실제로 가진 텍스트를 붙여넣습니다
일치하는 곳이 본문에서 강조되고, 인접한 것들을 구분할 수 있도록 색이 번갈아 붙습니다. 아래 표에는 그룹별 값이 나오고, 참여하지 않은 그룹도 그렇게 표시됩니다.
치환을 시험해 봅니다
`$1`, `$<name>`, `$&`, `` $` ``, `$'`, `$$`가 모두 `String.replace`와 똑같이 확장됩니다. 그래서 미리보기가 실제 결과입니다.
자주 묻는 질문
`g` 플래그가 없다는 경고는 왜 나오나요?
여기서는 일치하는 것을 모두 보여 주지만 코드는 그렇지 않기 때문입니다. `String.replace`는 첫 번째만 바꾸고 `matchAll`은 예외를 던집니다. 화면에 보이는 것과 프로그램이 하는 일 사이의 차이입니다.
Python이나 PCRE와 같은 엔진인가요?
아니요, JavaScript의 것입니다. 후방 탐색과 이름 있는 그룹, `\p{…}`는 되지만 원자 그룹, 소유 수량자, 재귀, 인라인 플래그 그룹은 안 되고, 문자 클래스 동작이 다른 곳도 있습니다. 여기서 되는 패턴이 다른 데서는 실패할 수 있습니다.
패턴을 넣으면 페이지가 멈춥니다.
멈추지 않아야 합니다. 매칭을 워커에서 돌리는 이유가 바로 그것입니다. 파국적으로 백트래킹하는 패턴은 다른 방법으로는 중단할 수 없습니다. 너무 오래 걸리면 실행을 끝내고 알려 줍니다. 유용한 신호이기도 합니다. 여기서 그러는 패턴은 서버에서도 그럴 테니까요.
`.`이 왜 줄바꿈에 안 맞나요?
그게 `s`(dotAll)의 역할이기 때문입니다. 없으면 `.`은 줄 끝 문자를 뺀 모든 것에 맞습니다. `m`(multiline)은 또 다른 것으로, `^`와 `$`의 뜻을 바꿀 뿐 `.`이 무엇에 맞는지는 바꾸지 않습니다.
이 도구로 이어지는 것
찾아 바꾸기
Find & Replace
문자열·단어·정규식으로 치환하며 캡처 그룹을 쓰고 바뀔 부분을 미리 보여 줍니다.
패턴 추출
Pattern Extractor
텍스트 덩어리에서 이메일·URL·숫자·날짜나 직접 지정한 정규식과 맞는 부분을 모두 목록으로 뽑습니다.
정규식 해설
Regex Explainer
정규식을 이름이 붙은 트리로 분해해 각 부분이 무엇을 잡는지 읽을 수 있게 합니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
cron 표현식 해석
Cron Parser
cron 표현식을 말로 풀어 설명하고 선택한 시간대 기준으로 다음 실행 시각을 보여 줍니다.
찾아 바꾸기
Find & Replace
문자열·단어·정규식으로 치환하며 캡처 그룹을 쓰고 바뀔 부분을 미리 보여 줍니다.
정규식 해설
Regex Explainer
정규식을 이름이 붙은 트리로 분해해 각 부분이 무엇을 잡는지 읽을 수 있게 합니다.
패턴 추출
Pattern Extractor
텍스트 덩어리에서 이메일·URL·숫자·날짜나 직접 지정한 정규식과 맞는 부분을 모두 목록으로 뽑습니다.
JSON CSV 변환
JSON ⇄ CSV
중첩 JSON을 점 표기 열 이름으로 펼치거나, 표에서 객체를 다시 만듭니다.
JSON 비교
JSON Diff
키 순서를 무시하고 두 JSON을 구조로 비교해 추가·삭제·변경된 경로를 알려 줍니다.