文字列がありますString s = "first.second.third...n-1.n";
2 つの正規表現アプローチのうち、Java でより効率的なのはどれですか?
s = s.replaceFirst(".*?\\.", "");
また
s = s.replaceAll('^[^.]+[.]', '');
彼らは同じことをしますが、どちらが速いのだろうか?
違いは次のとおりです。
固定正規表現を使用する vs.
replaceFirst()
最初のインスタンスのみに一致する貪欲
*?
でない文字クラスとドット以外の文字クラスの使用[^.]
\\.
リテラルと[.]
文字クラスの使用。
それらのパフォーマンスへの影響を個別にベンチマークまたは説明する回答を希望します。