테스터

패턴을 검증하고 차이를 확인하는 도구 모음입니다. 모든 처리가 브라우저에서 이루어지므로 데이터가 전송되지 않습니다.

패턴 테스트와 텍스트 비교

일치 항목, 캡처 그룹, 치환 결과 또는 오래 걸릴 수 있는 백트래킹을 확인하려면 정규식 테스터를 사용하세요. 매칭은 시간 제한이 있는 워커에서 실행되므로 위험한 정규식도 페이지 전체를 멈추게 하지 않습니다.

패턴이 아니라 변경된 내용을 찾으려면 텍스트 차이 도구를 사용하세요. 나란히 보기와 통합 보기를 제공하고 대소문자, 공백, 줄 끝 공백을 무시할 수 있으며 두 문서는 기기 밖으로 전송되지 않습니다.

무엇이 달라졌는지 묻는 두 가지 방법

패턴 테스터는 형태에 대한 질문에 답합니다. 이 텍스트가 내가 쓴 규칙과 맞는지, 어떤 부분이 캡처되었는지 말이죠. diff는 내용에 대한 질문에 답합니다. 이 둘은 같아야 하니 다른 곳을 보여 달라는 것입니다. 대부분의 디버깅은 둘 중 하나를 필요로 하며, 엉뚱한 쪽을 집어 들면 20분이면 끝날 일이 반나절이 됩니다.

필드를 검증하거나, 로그 한 줄에서 값을 뽑아내거나, 코드베이스 전체에서 치환하는 일은 패턴 문제입니다. 두 개의 내보내기 파일, 두 개의 설정 파일, 배포 전후의 응답을 비교하는 일은 차이 문제입니다.

패턴은 테스트하지 않은 곳에서 실패한다

대부분의 정규 표현식은 일치해야 할 입력을 넣어 보며 맞을 때까지 고치는 식으로 작성되고, 그 결과는 어김없이 너무 느슨합니다. 앵커가 없어서 안에 유효한 주소가 묻혀 있기만 하면 무엇이든 받아들이는 패턴이 대표적이며, 작성자가 떠올린 테스트는 모두 통과합니다.

그러니 일치하면 안 되는 경우를 테스트하세요. 형식이 틀린 값, 필드 안에 들어온 구분자, 기대하는 형식과 거의 같지만 조금 다른 줄 같은 것들입니다. 또 여기의 엔진은 브라우저의 것이므로 후방 탐색이나 이름 있는 그룹을 쓰는 패턴은 Python, Go, PCRE에서 다르게 동작할 수 있습니다.

똑같은 두 줄이 똑같지 않을 때

diff에서 가장 흔한 놀라움은 눈에 보이지 않는 변경이며, 원인은 거의 언제나 보이지 않는 것들입니다. 줄 끝 공백, 유닉스와 다른 윈도우 줄바꿈, 상대 파일에서는 공백인 자리의 탭, 문서에서 붙여 넣은 줄 바꿈 없는 공백, 첫 줄 맨 앞의 BOM 같은 것들입니다.

대소문자, 공백, 줄 끝 공백을 무시하는 옵션은 그것을 빠르게 좁히기 위해 있습니다. 진짜 변경을 찾았다면 옵션을 끄세요. 설정 파일에서는 공백 자체가 변경인 경우도 있으니까요.