java - 获取Java注解所需的数据

标签 java regex annotations pattern-matching text-processing

当我提取 Java 类中方法的注释时,我收到以下 String 响应:

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

但是,我只对 id=[C10137] 部分感兴趣,并且想要获取该号码 - 10137。还可以有这样的情况:

CASE1: //多个 id

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

情况2: //没有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

关于java - 获取Java注解所需的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338435/

相关文章:

java - Android:从按钮设置文本,其中按钮文本由字符串给出

java - 当我在 Sun JDK 下开发我的代码并在 Oracle JRockit JVM 中运行我的代码时,我使用的是来自 JRockit 的库吗?

Javascript:字符串替换问题

regex - 关于nfa和dfa的问题

java - Hibernate用null更新子实体并且不删除,如何强制它?

tomcat - 如何使用注释和 Tomcat 修复 servlet 的部署

javascript - 由于 AJAX 加载程序,Selenium 脚本失败

regex - Perl - 使用正则表达式删除字符串中的第一个单词

groovy - 我可以在 Groovy 中编写注释吗?

java - 使用泛型创建参数类