0

この文字列で Matcher を使用したい: #Function()(a)

単に選択するには: #Function()

私はこの正規表現を使用しています:

Pattern pat = Pattern.compile("\\#.*\\)");
Matcher match = pat.matcher(s);

そして、必要以上のものを選択しています: #Function()(a)

')'が最初に出現したときに Matcher を停止するにはどうすればよいですか?

4

2 に答える 2

2

デフォルト.*では貪欲なので、すべてを合法的に保ちながら、可能な限り一致します。代わりにを使用することで不本意にすることができます。そう.*?すれば、すべてを合法に保ちながら、可能な限り一致しなくなります。

于 2013-05-16T03:03:05.493 に答える
0

.*使用する代わりに[^\\)]*

これを試して:

Pattern pat = Pattern.compile("\\#[^\\)]+\\)");
于 2013-05-16T06:01:22.357 に答える