이 글은 H5EDU 조직의 공식 HTML5 교육 튜토리얼입니다. 주로 소개하는 내용은 다음과 같습니다. JavaScript 향상 튜토리얼 - 정규식 역추적
다음 예는 정규식 처리 과정을 보여줍니다.
/ h(ello|appy) hippo/.test("hello there, happy hippo");
이 정규 표현식은 "hello hippo" 또는 "happy hippo"입니다. 일치 프로세스가 시작되면 먼저 h를 검색합니다. , 대상 문자열의 첫 번째 문자가 우연히 h이므로 즉시 발견됩니다. 다음으로, 하위 표현식(ello|appy)은 두 가지 처리 옵션을 제공합니다. 정규식은 가장 왼쪽 옵션을 선택하고(선택은 항상 왼쪽에서 오른쪽으로 이루어짐) ello가 문자열 문자의 다음 옵션과 일치하는지 확인합니다. 성공하고 정규식은 후속 공백과 일치합니다. hippo의 h는 다음 문자열의 t와 일치할 수 없으므로 일치를 계속할 수 없습니다. 이 시점에서 정규식은 모든 옵션을 모두 사용하지 않았기 때문에 포기할 수 없습니다. 그런 다음 가장 가까운 결정 지점(첫 번째 문자 h 이후의 위치와 일치)으로 역추적하고 두 번째 분기와 일치를 시도합니다. 일치가 실패했고 더 이상 옵션이 없으므로 정규식은 문자열의 첫 번째 문자에서의 일치가 성공할 수 없다고 판단하여 두 번째 문자부터 다시 시도합니다. h를 찾지 못해 "happy"의 h가 14번째 문자열의 위치에 일치할 때까지 계속 검색하다가, 이번에는 ello 일치에 실패했지만 다시 역추적하여 시도했습니다. 두 번째 분기 프로세스. 마지막으로 전체 문자열 "happy hippo"가 일치되었습니다.
매칭 성공했습니다.