私はCSVパーサーを作成していますが、ファイルにアクセスできると期待できるさまざまなデータ型を検出するために、それぞれの正規表現私は有効で認識可能であると定義した。例えば、私の整数値のために、ここに私の地図である:今代数を使用するときの正規表現効率と単正規表現
Map<String, String> integerFormatRegexps = new HashMap<String, String>();
integerFormatRegexps.put("^[1-9]\\d{1,9}$", "##0");
integerFormatRegexps.put("^-[1-9]\\d{1,9}$", "-##0");
integerFormatRegexps.put("^0$", "0");
、私は、私は、どこの代わりに3つの正規表現で、SO代わりにこれらの正規表現を分離有していると、彼らは交替を使用する場所で、ここでいくつかのexamplesを見てきました
Map<String, String> integerFormatRegexps = new HashMap<String, String>();
integerFormatRegexps.put("^[1-9]\\d{1,9}$|^-[1-9]\\d{1,9}$|^0$", "Integer");
Javaでパターンを一致させるとき、2つの方法のどちらがより効率的になるのでしょうか?マッチを見つけるために別のより単純な正規表現を反復するか、ただ1つ、より複雑な正規表現とマッチングするか?
あなたは両方のバリアントを自分でベンチマークできないのはなぜですか? –
これはPerlの[似たような質問]です(http://stackoverflow.com/questions/36420517/is-it-faster-to-use-alternation-than-subsequent-replacements-in-regular-expressi)。 *概要*:**あなたはリンゴとオレンジを比較していることに注意してください**。 –
@ Washtorによって参照されているものを含めて、ここの他の投稿のLashane(これは非常に特定のトピックのようであり、多くの経験を必要とするようです)実際に私はそれを自分で測定することができました。私は例を提供しようとしたので非常に具体的ですが、それは名前が意味するように一般的な質問です:Java正規表現マッチングで交替のパフォーマンスを使用するでしょうか? – carlossierra