获取Java注释所需的数据

时间:2016-05-20 05:17:32

标签: java regex annotations pattern-matching text-processing

String时收到以下pull the annotations of a method in Java class响应:

@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数组。

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式

\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