11

正規表現を DFA にコンパイルし、DFA を照合しながらグループ キャプチャを実行できる、Java 用の (無料の) 正規表現エンジンはありますか?

どちらも DFA にコンパイルされる dk.brics.automaton と jrexx を見つけましたが、どちらもグループ キャプチャを実行できないようです。私が見つけた他のエンジンはNFAにコンパイルされるようです。

4

5 に答える 5

3

これを試してください(おそらくDFAではありませんが、java.utilより高速です)http://jregex.sourceforge.net/gstarted-advanced.html#ngroups、またはこれを試してください:http://userguide.icu-project.org

そのテストによると: http://tusker.org/regex/regex_benchmark.html、どちらも高速です (ベンチマークは、ベンチマークの作成者がテストしたいものだけをテストすることを知っています)。

非常に高速な DFA 正規表現が必要なときは、grep を使用するプロセスを生成しました ;-) (6 GB のログ ファイルの場合、時間が 10 分から数秒に短縮されました)。

于 2011-05-12T09:25:39.523 に答える
1

私は最近、tree-regexを書きました。

于 2011-09-28T13:39:53.413 に答える
0

C には、 TREと Google のRE2ライブラリがあります。TRE は DFA を使用し、RE2 は NFA を使用します (私が理解している限り)。どちらもサブグループ マッチングが可能です。しかし、そのようなJava用のライブラリは見当たりませんでした。

于 2010-07-29T09:01:04.607 に答える
-2

dk.brics.automatonは、DFAがグループのキャプチャを実行しているように見えます。この質問から2年後にはこの機能が新しくなると思います。AutomatonMatcherクラスをチェックしてください。

http://www.brics.dk/automaton/doc/dk/brics/automaton/AutomatonMatcher.html#group(int)を参照してください

于 2011-07-22T22:31:08.380 に答える
-2

Pat 正規表現ライブラリ @ http://www.javaregex.com/を試すことができます。

于 2010-02-07T03:19:58.497 に答える