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 回答