2

Pattern.quote("パターン") は を返します\Qpattern\E。文字列にメタ文字がない場合、文字列をリテラル化する必要は本当にありますか?

4

2 に答える 2

5

\Qいいえ、必要ではありませんが、おそらく実装を簡素化し、不必要なコスト\Eがかなり小さいため、実装者が選択したことです。

私の JDK では、Pattern.quote()気にする唯一のことは、パターンに既に\Qとがあるかどうかです。\E他の特殊文字は検索しません。

于 2012-12-02T09:13:44.183 に答える
1

私の推測では、それはより単純でより効率的だと思います。最初のパスを実行してメタ文字があるかどうかを確認し、次に2番目のパスを実行してそれらを引用する代わりに、メタ文字があると想定し、常に引用します。

于 2012-12-02T09:15:23.980 に答える