我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数组。
答案 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 强>