Java 如何查找括号中的元素

Java 如何查找括号中的元素,java,regex,Java,Regex,我需要文本字段中注释的括号中的值。例如: String text=“我有简单的注释@Test(value123)和.. 我可以用一个值找到注释本身,但我不知道没有注释如何获得它 patternString=Pattern.compile(“@Test\\(\\s+\\)”); 结果: @测试(值123) 但我需要 价值123 您可以使用匹配器,如下所示: import java.util.regex.Pattern; 导入java.util.regex.Matcher; 班长{ 公共静态void

我需要文本字段中注释的括号中的值。例如:

String text=“我有简单的注释@Test(value123)和..

我可以用一个值找到注释本身,但我不知道没有注释如何获得它
patternString=Pattern.compile(“@Test\\(\\s+\\)”);

结果:

@测试(值123)

但我需要

价值123


您可以使用匹配器,如下所示:

import java.util.regex.Pattern;
导入java.util.regex.Matcher;
班长{
公共静态void main(字符串[]args){
String testString=“@Test(value123)”;
//未替换的括号用于捕捉组
//请注意,我已将\\s+更改为.+,
//因为我想匹配括号内的内容,
//不是空白(但是,您应该根据需要进行调整)
Pattern=Pattern.compile(“@Test\\(.+)\\”);
Matcher Matcher=pattern.Matcher(testString);
if(matcher.matches()){
字符串值=matcher.group(1);
System.out.println(值);//打印值123
}
}
}
添加一个
(X)

String text=“我有简单的注释@Test(value123)和..”;
模式p=Pattern.compile(“@Test\\([^)]*)\\”;
匹配器m=p.Matcher(文本);
if(m.find()){
System.out.println(m.group(1));//打印捕获组1
}
输出

value123
解释

@Test\(匹配'@Test')
(开始捕获组1
[^)]*匹配零个或多个字符,但“')除外
)捕获组1结束
\)匹配“)”


或者,使用
(?显示你的代码。你需要使用“向后看/向前看”或“分组”谢谢你,它在工作。祝你好运!谢谢你,它在工作。祝你好运!@Maxim如果你觉得两个答案都有用,你应该向上投票。@Andreas我只能投票给一个答案。如何投票给两个答案?@Maxim按下向上的箭头,而不是复选标记。@Andreas感谢您的反馈!声誉低于15的人所投的票将被记录,但不会更改公开显示的帖子分数。”