학교 프로젝트의 일환으로 매우 간단한 스크립트 구문 분석기를 작성하고 필요하지 않지만 정규식으로 만 수행 할 수 있는지 궁금합니다.정규식, 따옴표 안에있는 경우 패턴 무시
구문은 ASP와 유사하며 스크립트는 < %로 시작하고 %>로 끝납니다.
에코 또는 Response.Write와 같은 하나의 명령 "pr"만 지원합니다.
지금 내가 스크립트 블록 찾으려면이 정규 표현식을 사용하고 있습니다 :
(<%\s*([\s\S]*?)\s*%>)
하지만이 같은 명령이있는 경우 :
<% pr "%>"; %>
를 ... 그것은 분명히에만 일치를 :
<% pr "%>
순수 정규식을 사용하여 따옴표 안에있는 닫기 태그를 무시하는 방법이 있습니까? 내 주된 걱정은 태그가 따옴표 사이에 있지만 실제로는 태그 외부에있는 태그와 일치 할 수 있다는 것입니다. 예를 들어 ...
<% pr "hello world"; %> "
는 기술적으로 닫는 태그는 따옴표로 둘러싸여 있지만, 다른 방법으로 주위 오히려, 후 "열기" "닫기"따옴표 안에 아니다.
정규식을 사용하면이 기능을 지원할 수 있다면이 기능을 지원하려면 수동으로 수신 텍스트를 반복하고 블록을 구문 분석해야합니다. 실제로 큰 문제는 아닙니다. 어느 한 쪽.
감사합니다.
동안 (의사 코드를 사용하여) 예를 들어
, 그것은 불가능하다. 예를 들어, 마지막 예제가''<% pr "hello world"; %> "'로 확장되지 않아야하는 이유는 무엇입니까? 따옴표 안이나 바깥에 모두 '<%' and '%>'이 없습니까? 마지막 예제에서 후행의 ""가 나중에 입력과 일치한다는 것을 확신 할 수 있습니까? –