Java で HTML に似たマークアップ言語の非常に単純化されたバージョンのパーサーをすばやく構築する必要があります。Python では、これを行うために pyparsing ライブラリを使用します。Javaに似たものはありますか?HTML 解析用のライブラリが既に存在することを示唆しないでください。私のアプリケーションは、オブジェクトのツリーをたどり、ビジター パターンを使用してテキストにシリアル化する方法を示す学校の課題です。基本的にここで必要なのは、タグ、属性、およびテキスト ノードだけです。
5 に答える
もう 1 つの優れたパーサー ジェネレーターはANTLRです。探しているものかもしれません。
あなたの使い方にはやり過ぎかもしれませんが、 javaccは優れた工業用強度のパーサージェネレーターです。私はこのプログラム/ライブラリを数回使用しましたが、特に言語やコンパイラを使用する場合は、信頼性が高く、学習する価値があります。上記のウェブサイトからのプログラムの説明は次のとおりです。
Java Compiler Compiler [tm] (JavaCC [tm]) は、Java [tm] アプリケーションで使用する最も一般的なパーサー ジェネレーターです。パーサー ジェネレーターは、文法仕様を読み取り、文法との一致を認識できる Java プログラムに変換するツールです。パーサー ジェネレーター自体に加えて、JavaCC は、ツリー構築 (JavaCC に含まれる JJTree と呼ばれるツールを使用)、アクション、デバッグなど、パーサー生成に関連する他の標準機能を提供します。
Java でパーサー ジェネレーターをすばやく検索すると、JParsecが見つかります。私はそれを使用したことはありませんが、Haskell ライブラリに触発されているため、定義上は優れているに違いありません:-)
JParsec(Torstenのおかげで発見したばかりです)はコードを生成しないので好きです... :-)おそらく効率は劣りますが、小さなタスクには十分です。
同様のライブラリ、JTopasを見つけました。
Java Sourceには、パーサー(ジェネレーターかどうか)の適切なリストがあります。
Javaでの文字列処理にはかなりの数の選択肢があります。たぶん、非常に基本的なjava.util.Scanner
クラスjava.util.StringTokenizer
があなたに役立ちますか?
もう一つの良い選択は多分the org.apache.commons.lang.text
図書館です。
http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html