获取 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=\[(.+?)\]
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));
}
当我 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=\[(.+?)\]
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));
}