私のプロジェクトでは、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主にこの作品に基づいた文法は、用意しました。この目的のために ragelでHTMLを解析する際の問題
をほとんどすべてがうまく(素晴らしいツールをありがとう!)作品、私ができる1つの問題を除いて」トンまでに克服:
私は、入力として、このテキストを指定した場合:
bbbb <a href="first_link.aspx"> cccc<a href="/second_link.aspx">
私のパーサが正しく最初のリンクではなく秒1を抽出することができます。 これらの違いは、'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ファイルを作成します。
入力ファイルは同じディレクトリにある必要があります。
いずれの手がかりにも心から感謝します。