特定のページには、一連の要素があります。
<div class="some class"> <-- here is anything, other divs, even other divs with
the same class, but I need to match right on closing tag for this particular
opening tag --></div>
特定のページには、一連の要素があります。
<div class="some class"> <-- here is anything, other divs, even other divs with
the same class, but I need to match right on closing tag for this particular
opening tag --></div>
HTML の解析に正規表現を使用しないでください。代わりにDOMDocumentを使用して、頭痛の種をすべて取り除いてください。
スタック オーバーフローに関する関連資料:
正規表現は、正規言語での操作を記述します。HTMLは正規言語ではありません。いわゆる「再帰正規表現」は実際には正規表現ではなく、正規言語に限定されていないため、これを実行できると確信しています。とにかく代わりにそれを解析したほうがいいともっと賭ける準備ができているでしょう。
簡単な方法(最良ではありませんが、数行でコーディングするのが最も簡単です)は、内部divの数を保持することです。divタグに遭遇するたびに、カウントを上げてください。終了divタグに遭遇したときはいつでも、それがゼロ以外の場合、または完全な要素を見つけた場合は、カウントをドロップします。ファイルの終わりに遭遇するたびに、誰かがdivを適切に閉じていません。
XMLパーサーの使用は、コードが整形式であることに依存できる場合(できない場合は、2つの問題が発生します...)、または整形式でない場合にエラーが発生する準備ができている場合は、さらに簡単です。形成された入力。
唯一の堅牢な解決策は、HTML を解析することです。正規表現はすべての場合にこれを解決できるわけではありません。
実際、ブラウザーは非常に寛容であることが多く、行方不明などのエラーにも対処します。
< / P >
タグ。そのため、任意のページを扱うのは実際には非常にトリッキーです。
自分で作成したページを扱っている場合は、おそらくいくつかの特殊なケースの正規表現をコーディングできます。それ以外の場合は、このような真のパーサーを探す必要がある場合があります。(自分で使ったことはありませんが、必要なものかもしれません。)