私はあなたが思っていることを知っています - "ああ、私の神、真剣に、もう一度" - しかし、私と一緒に耐えてください、私の質問はタイトル以上です。始める前に、私は正規表現で任意のHTMLを解析しようとしないことを約束します。拡張正規表現の実装でHTMLを解析できますか?
これを行うことができない理由を説明する多くの多くの回答は、正規表現の正式な定義に依存しています。彼らは規則的な言語を解析します、HTMLは文脈自由ですが、規則的ではないので、あなたはそれをすることができません。しかし、私はまた、さまざまな言語での正規表現の実装が厳密に規則的ではないと聞きました。正式な正規表現の境界を超えて余計なトリックが付いてきます。私は、任意の特定の実装の詳細を知らないので
、Perlなど、私の質問は以下のとおりです。正規表現のツールの特徴
- が非正規ですか?それは後の参照ですか?どの言語でそれらが見つかりましたか?
- これらの余分なトリックは、すべてのコンテキストフリー言語を解析するのに十分ですか?
- #2に「いいえ」と答えた場合、これらの追加機能が正確にカバーする正式なカテゴリまたは言語クラスがありますか?私たちが解決しようとしている問題が、必ずしも正規表現ではないという力の範囲内にあるかどうかを、すぐにどのように知ることができますか?
の神私のああ、真剣に、再び – phihag