정규식 테스터

정규식은 머릿속으로 따져 보는 것보다 직접 돌려 보는 편이 빠릅니다. 그리고 코드와 같은 엔진에서 시험하는 것이 중요합니다. 이 페이지는 브라우저에 들어 있는 자바스크립트 정규식 엔진을 쓰므로, 여기서 맞은 것은 스크립트에서도 맞습니다. 맞은 자리는 글 안에 표시되고, 위치와 잡은 그룹이 표로 정리되며, $1 같은 참조가 든 치환도 실행하기 전에 미리 볼 수 있습니다. 시험용 글은 대개 실제 데이터라서 한 번 더 적어 둡니다. 붙여 넣은 것은 페이지 밖으로 나가지 않습니다.

정규식을 시험하는 방법

  1. 패턴을 적습니다. 빗금 안에 넣던 그대로 적으면 됩니다. 빗금과 플래그는 도구가 붙여 줍니다.
  2. 필요한 플래그를 켭니다. i는 대소문자 무시, m은 ^와 $를 줄마다 적용, s는 점이 줄바꿈에도 맞게, u는 유니코드 모드입니다.
  3. 아래에 찾을 글을 붙여 넣습니다. 적는 대로 맞은 자리가 표시되고, 표에 각 결과가 시작 위치와 잡은 그룹과 함께 나옵니다.
  4. '치환 보기'를 켜면 바꾸기를 시험할 수 있습니다. 번호가 붙은 그룹은 $1, $2로, 이름이 붙은 그룹은
    lt;이름>으로 참조합니다.

정규식 시험에 대해 자주 묻는 것

어떤 계통의 정규식인가요?

자바스크립트의 것입니다. 브라우저의 엔진이 직접 패턴을 돌리기 때문입니다. 일상적인 쓰임에서는 PCRE와 가깝지만 뒤돌아보기, 이름 붙인 그룹, 유니코드 속성 표기는 지원 내력이 다르고, PCRE가 허용하는 재귀나 소유 수량자 같은 것은 여기에 아예 없습니다.

시험용 글이 올라가나요?

아닙니다. 패턴은 페이지 안에서, 페이지를 떠나지 않는 글에 대고 돌아갑니다. 로그 일부나 고객 기록으로 시험할 때 알아 둘 만합니다.

글 길이에 왜 제한이 있나요?

패턴에 따라 되돌아가며 헤매는 일이 생기기 때문입니다. 중첩된 수량자가 엉뚱한 입력을 만나면 시간이 지수로 늘어나는데, 브라우저는 한 번 시작된 정규식을 중간에 끊을 수 없습니다. 입력에 상한을 두면 잘못된 패턴이 탭을 얼려 버리는 대신 문제를 보여 줄 수 있습니다.

왜 1,000개에서 멈추나요?

수만 개의 표시를 그리면 페이지가 쓸 수 없게 되면서도 더 알려 주는 것은 없기 때문입니다. 상한에 닿으면 결과 위에 그렇게 적히므로, 목록이 일부라는 것을 알 수 있습니다.

이름 붙인 그룹은 어떻게 나오나요?

그룹 칸에 객체 형태로 나오고, 치환에서는

lt;이름>으로 참조할 수 있습니다. (?<year>\d{4}) 같은 패턴은 연도를 번호가 아니라 그 이름으로 쓸 수 있게 해 줍니다.

Other tools

Languages