从Java 7转换为6,Matcher.group

时间:2013-12-27 10:45:52

标签: java java-7 java-6 matcher

我将Java 7应用程序转换为Java 6应用程序。我被matcher.group财产所困,因为我不太了解它的作用。

我有以下代码:

public static final String PropertyRegexPrefixGroup = "prefix";
public static final String PropertyRegexPostfixGroup = "postFix";

public static ParsedProperty parse(String property) {
    Matcher matcher = PropertyRegex.matcher(property);
    boolean isMatch = matcher.matches();
    if (!isMatch)
        return new ParsedProperty(null, property, false);

    String prefix = matcher.group(PropertyParser.PropertyRegexPrefixGroup);
    String postfix = matcher.group(PropertyParser.PropertyRegexPostfixGroup);
    return new ParsedProperty(prefix, postfix, true);
}

我必须重写String prefixString postfix属性声明。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

在Java 6中,您不能拥有命名组,因此需要按索引引用组。

鉴于这种模式:

Pattern pattern = Pattern.compile("(foo).*(bar)")

和这段代码:

Matcher matcher = pattern.matcher("foo....something...else...bar");
matcher.find();

matcher.group(0)匹配整个字符串,matcher.group(1)返回“foo”,matcher.group(2)返回“bar”