获取 Java 注释所需的数据

Get Java annotation's desired data

当我 pull the annotations of a method in Java class:

时,我得到以下 String 响应
@client.test.annotations.TestInfo(id=[C10137])
@org.testng.annotations.Test(alwaysRun=false, expectedExceptions=[]..

但是我只对 id=[C10137] 部分感兴趣,并且想得到那个数字 - 10137。也可以是这样的情况:

CASE1: //multiple ids

@client.test.annotations.TestInfo(id=[C10137, C12121])
    @org.testng.annotations.Test(alwaysRun=true,...

CASE2: //no id

@client.test.annotations.TestInfo(id=[]) //ignore this time
    @org.testng.annotations.Test(alwaysRun=true,...

正则表达式可以为我生成这个 id 数组吗?或者其他一些获得所需 id 数组的好方法。

您可以使用这个正则表达式

\bid\b=\[(.+?)\]

Regex Demo

Java代码

String line = "@client.test.annotations.TestInfo(id=[C10137])@org.testng.annotations.Test(alwaysRun=false, expectedExceptions=[].."; 
String pattern = "\bid\b=\[(.+?)\]";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);

if (m.find()) {
    System.out.println(m.group(1));
}

Ideone Demo