정규 언어 동치 검사기
두 정규식이 일부 예제 문자열에서만 같아 보이는지, 지원 문법에서 모든 문자열에 대해 같은지를 검사합니다. 각 패턴을 비결정적 오토마타로 바꾸고 결합 상태를 탐색하여 동치·포함을 판정합니다. 차이가 있으면 한쪽에만 속하는 가장 짧은 반례를 표시합니다. 모든 입력은 전체 문자열 일치 기준이며, 알파벳은 인쇄 가능한 ASCII 95글자입니다.
주요 기능
- 두 패턴의 언어 동치 및 양방향 포함 판정
- 각 방향에만 속하는 최단 반례 찾기
- 리터럴·그룹·선택·반복·문자 클래스 지원
- 결합 상태 전이 표와 Graphviz DOT 내보내기
- 상태 한도 초과·미지원 문법을 판정과 구분
사용 방법
- 지원 문법으로 패턴 A와 B를 입력합니다.
- 동치·포함 비교를 실행합니다.
- 양방향 포함과 따옴표로 표시된 반례를 검토합니다.
- 결합 상태 목록과 전이 일부를 화면에서 확인합니다.
- 필요하면 전체 JSON 또는 Graphviz DOT를 다운로드합니다.
활용 예시
- 정규식 간소화 전후의 언어가 같은지 검증
- 허용 규칙 A가 B에 완전히 포함되는지 확인
- 패턴 차이를 드러내는 짧은 테스트 문자열 찾기
자주 묻는 질문
JavaScript 정규식 전체를 지원하나요?
아니요. 리터럴 ASCII, 괄호 그룹, |, *, +, ?, 점, 문자 클래스와 범위, \d·\w·\s만 지원합니다. 뒤참조·전후방 탐색·수량자 중괄호·앵커는 거부합니다.
점과 문자 클래스 부정은 어떤 문자에 적용되나요?
인쇄 가능한 ASCII U+0020부터 U+007E까지 95글자입니다. 줄바꿈과 유니코드는 입력 언어에 포함되지 않습니다. \s는 이 알파벳에서 공백 한 글자입니다.
반례가 빈 문자열이면 어떻게 보이나요?
빈 문자열 반례는 따옴표 두 개인 ""로 보입니다. 반례가 없다는 뜻은 별도 없음 표시로 구분합니다.
검사가 끝나지 않으면 동치라고 판단하나요?
아니요. 패턴·오토마타·결합 상태 한도를 넘으면 판정 없이 한도 오류를 표시합니다.
기존 정규식 테스터와 무엇이 다른가요?
기존 테스터는 넣어본 예제 문자열에 대한 JavaScript 정규식 매치를 확인합니다. 이 도구는 제한된 정규 언어 전체의 관계를 오토마타로 결정하고 반례를 찾습니다.
개인정보 안내
패턴은 브라우저 메모리에서만 계산하고 서버로 전송하지 않습니다. JSON·DOT 파일은 로컬 다운로드입니다.
댓글과 질문