내 프로젝트에서 HTML 문서의 링크를 추출해야합니다. 내가 ragel HTML 문법 준비했습니다이를 위해 은 주로이 작업을 기반으로 : 는 https://github.com/brianpane/jitify-core/blob/master/src/core/jitify_html_lexer.rl (여기에 언급 : http://ragel-users.complang.narkive.com/qhjr33zj/ragel-grammars-for-html-css-and-javascript)ragel을 사용하여 HTML을 구문 분석 할 때의 문제점
은 거의 모두가 '내가 할 수있는 한 가지 문제를 제외하고도 (! 위대한 도구에 대한 감사) 작동 t는 현재까지 극복 :
이bbbb <a href="first_link.aspx"> cccc<a href="/second_link.aspx">
내 파서 올바르게 첫 번째 링크를 추출 할 수 있지만 두 번째 수 있습니다
내가 입력이 텍스트를 지정합니다. 그 차이점은 'bbbb'
과 '<a'
사이에 공백이 있지만, 'cccc'
과 '<a'
사이에는 공백이 없어야한다는 것입니다.
일반적으로 공백을 제외한 텍스트가 '<a'
태그 앞에 있으면 구문 분석이 내용으로 간주하고 파서는 태그 열기를 인식하지 못합니다.
이 레포에서 찾으십시오. https://github.com/amdei/ragel_html_sample C 프로그램 (ngx_url_html_portion.rl)으로 작업하기 위해 의도적으로 문법을 사용하여 간단한 샘플을 작성하십시오. 응용 프로그램에 대한 입력을 포함해야하는 입력 파일 input-nbsp.html도 있습니다.
ragel ngx_url_html_portion.rl
다음이 .c 파일을 결과로 컴파일을 programm을 실행
함께 플레이하기 위해, 문법 .c 인 파일을 확인하십시오.
입력 파일은 같은 디렉토리에 있어야합니다.
모든 단서에 대해 진심으로 감사드립니다.