2017-01-16 6 views
0

私のスキルを練習するには、htmlパーサーを書くつもりです。私が念頭に置いている考え:初心者からhtmlパーサーを作成しようと考えていますか?

  • 正規表現を使ってトークン化したいものを定義します。
  • 一部のhtmlを文字列として受け入れます。
  • ループスルーhtml文字列。
  • コンテンツや位置などのトークンに関する情報をオブジェクトとして保存します。
  • トークンに別のトークンがある場合、そのトークンは親トークンの子オブジェクトです。
  • オブジェクトグラフを終了します。

  • 適切なゲッターとセッターを作成します。

これは意味がありますか?

+0

有名な答え[正規表現でHTMLを解析できません](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#) 1732454) – charlietfl

+1

HTML仕様の[HTMLパーサーの説明](https://html.spec.whatwg.org/multipage/syntax.html#parsing)は文字ベースでステートマシンを使用しているので、インスピレーションのためにそれを見ている。 – Blender

答えて

1

正規表現は、このような大量のHTML解析には適していません。 regular expressions are a tool that is insufficiently sophisticated to understand the constructs employed by HTML

state machineまたはtokeniserベースの実装を使用することをお勧めします。

HTML5 specificationでHTML5の解析の詳細を読むこともできます。

+0

どのようにしてテキストをトークン化しますか?私は単純な正規表現以外の何かを考えることはできませんまたは分割を使用して – Asperger

+0

私はちょうど空白のような区切りを定義する必要があります – Asperger

関連する問題