使用java正则表达式,如何使用"()"获取组值?串?

时间:2014-05-27 12:39:31

标签: java regex

我有字符串:

 @Table(name = "T_MEM_MEMBER_ADDRESS1")
 @Table(  name = "T_MEM_MEMBER_ADDRESS2")
 @Table (   name = "T_MEM_MEMBER_ADDRESS3" )

我想写一个正则表达式,它可以获取名称值,例如:

 T_MEM_MEMBER_ADDRESS1
 T_MEM_MEMBER_ADDRESS2
 T_MEM_MEMBER_ADDRESS3

我写

String regexPattern="...";
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(input);

boolean matches = matcher.matches();
if (matches){
   log.debug(matcher.group(1));
}

但是我不能写regexPattern ..

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

(?<=")(.+)(?=")

在Java中:

String regexPattern="(?<=\")(.+)(?=\")";

它使用了后视和前瞻。

第1组将包含您想要的内容。

答案 1 :(得分:0)

您可以使用以下代码:

    String input = "@Table(name = \"T_MEM_MEMBER_ADDRESS1\")";
    String regexPattern=".*\"(.*)\".*";
    Pattern pattern = Pattern.compile(regexPattern);
    Matcher matcher = pattern.matcher(input);

    boolean matches = matcher.matches();
    if (matches){
       System.out.println(matcher.group(1));
    }

希望它有所帮助。