정규식 테스터
직접 입력한 텍스트에 정규식을 적용해 각 일치 항목의 위치와 캡처 그룹을 보여줍니다. 치환 모드로 텍스트를 바꾸거나 추출 모드로 그룹을 한 줄씩 뽑을
패턴을 입력하고 텍스트를 붙여 넣으면 일치하는 모든 항목이 위치와 캡처 그룹과 함께 강조 표시됩니다. 치환 모드로 바꾸면 텍스트를 다른 내용으로 고쳐 쓸 수 있고, 추출 모드로 바꾸면 캡처 그룹 하나를 줄 단위로 뽑아낼 수 있습니다. 패턴을 코드에 넣기 전에 확인하는 가장 빠른 방법입니다.
엔진은 브라우저가 사용하는 JavaScript 정규식 방식이므로 이름 있는 그룹, 전방 탐색, 게으른 수량자를 포함해 Node나 브라우저 콘솔에서 얻는 결과와 같습니다. 전역, 대소문자 무시, 여러 줄, 점이 줄바꿈도 포함, 유니코드 일치 플래그를 쓸 수 있으며, 폭주하는 패턴은 탭이 멈추는 대신 중단됩니다.
정규식을 시험하는 방법
패턴을 입력하고 플래그를 설정합니다
시험할 텍스트를 붙여 넣습니다
일치 결과를 확인하거나 치환과 추출 모드를 사용합니다
자주 묻는 질문
어떤 정규식 방식을 사용하나요?
JavaScript(ECMAScript)로, 브라우저와 Node.js가 쓰는 것과 같은 엔진입니다. PCRE, Python, Java용으로 작성한 패턴은 조금 손봐야 할 수 있으며, 점유 수량자와 재귀는 이 방식에 없습니다.
제 패턴이 멈추거나 중단된 이유는 무엇인가요?
대개 (a+)+ 같은 중첩 수량자를 일치하지 않는 긴 문자열에 적용할 때 생기는 치명적 백트래킹 때문입니다. 탭을 보호하기 위해 도구가 일정 횟수 이후 실행을 멈추므로, 패턴을 단순하게 만들거나 위치를 고정하세요.
텍스트는 어떻게 치환하나요?
치환 모드로 바꾸고 바꿀 내용을 입력합니다. $1, $2 또는 $<name>으로 캡처 그룹을 넣을 수 있어 날짜 형식을 바꾸거나 필드 순서를 교체하거나 로그를 정리할 수 있습니다.
추출 모드는 무엇을 하나요?
일치 전체 대신 캡처 그룹 하나를 한 줄에 하나씩 출력합니다. 긴 텍스트에서 이메일 주소, URL, ID를 긁어낼 때 꼭 필요한 기능입니다.
패턴에서 줄바꿈이 동작하나요?
여러 줄 또는 점이 줄바꿈도 포함 플래그를 켰을 때만 동작합니다. 기본적으로 . 은 줄바꿈과 일치하지 않으며, 한 줄에서는 되던 패턴이 문단에서는 실패하는 흔한 이유가 이것입니다.
제 텍스트가 업로드되나요?
아니요. 일치 작업은 기기 안에서 실행되므로 실제 로그 데이터나 고객 정보가 들어 있어도 안전합니다.
한눈에 보기
| 입력 | 텍스트 |
|---|---|
| 여러 파일 | 아니요 |
| 실행 위치 | 브라우저에서 실행 - 파일은 업로드되지 않습니다 |
| 오프라인에서도 작동 | 예 — 페이지를 불러온 후 |
| 가격 | 무료, 가입 필요 없음, 워터마크 없음 |
변환이 조용히 깨지는 곳
변환 버그는 대부분 문법이 아니라 의미의 문제입니다. 우편번호 CSV 열은 스프레드시트가 숫자라고 추측하는 순간 앞의 0을 잃습니다. 긴 ID는 부동소수점 정밀도를 넘어섭니다. 날짜는 일이 먼저인지 월이 먼저인지에 따라 의미가 달라집니다. JSON 키에는 순서가 없지만 배열에는 있습니다. 키를 정렬하는 도구는 아무것도 바꾸지 않지만 배열을 정렬하는 도구는 데이터를 바꿉니다. Unicode도 함정입니다. 텍스트는 UTF-8이나 UTF-16으로, 또는 BOM과 함께 도착할 수 있고, 잘못 추측한 디코더는 강세 문자가 있는 글자를 깨진 문자로 만듭니다. 어떤 변환이든 믿기 전에 첫 행과 마지막 행, 앞에 0이 붙은 필드, 따옴표나 쉼표, 줄바꿈이 들어 있는 필드를 표본 검사하십시오.
데이터 형식 고르기
JSON은 API가 반환하거나 프로그램이 읽는 데이터의 기본 선택입니다. 중첩 구조, 숫자, 불리언, null을 자연스럽게 다루고 모든 언어가 파싱합니다. CSV는 더 작고 스프레드시트에서 바로 열리지만, 중첩을 표현할 방법이 없고 구분자, 인용, 문자 집합에 관한 공통 표준도 없습니다. 변환이 어긋나는 지점이 바로 여기입니다. XML은 장황하지만 속성, 혼합 콘텐츠, 스키마를 담을 수 있어 문서 형식과 기존 연동에서 여전히 주류입니다. YAML은 설정 파일에 가장 읽기 좋지만 공백에 민감하고 형 변환이 뜻밖의 결과를 냅니다("no"가 false가 되거나 1.10 같은 버전이 1.1이 됩니다). 보기 좋은 형식이 아니라 그것을 사용하는 도구가 선호하는 형식을 고르십시오.