java - 如何在第一次出现字符时停止匹配器?

标签 java regex

我想在这个字符串中使用 Matcher: #Function()(a)

仅选择:#Function()

我正在使用这个正则表达式:

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

而且我选择的内容超出了我的预期:#Function()(a)

如何在第一次出现 ')' 时停止 Matcher?

最佳答案

默认情况下,.* 是贪婪的,因此它将尽可能多地匹配,同时保持整个过程合法。您可以通过使用 .*? 来使其不情愿,然后它会尽可能少地匹配,同时保持整个过程合法。

关于java - 如何在第一次出现字符时停止匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16578316/

相关文章:

java刷新一个数组到jList

JavaScript 正则表达式 : Replace spaced substring from the string

c# - 用C#替换字符串中的数字

java - 不兼容的类型和新的类型变量

java - Spark Local Mode - 所有作业只使用一个 CPU 内核

JavaFX 动画/带 Pane 的 3d View

python - 在正则表达式中匹配两种可能的解决方案

java - hibernate : fetch lazy collection with HQL

java - 如何在 Java 中查找字符串模式

c++ - 正则表达式 boost 库比较