0

如何从正则表达式中提取值,其中任何占位符都可以由 a 重新引用$number_of_occurance value

例如,我有一个字符串final_0.25Seg1-Frag1,我想使用0.25通配符在文件中查找该字符串的所有匹配项,我可以使用

Pattern regex = Pattern.compile( "/vod/final_\\d+\\.\\d+Seg1-Frag1" );
Matcher regexMatcher = regex.matcher(data2[0]);

我想保留值的值,\\d+\\.\\d并在所有匹配的行中找到该位置的最大值。

4

2 回答 2

2

你看过Pattern group s 吗?您可以遍历这些以识别匹配的子表达式。

从链接的例子。匹配器。group (0) 是完整的表达式。

CharSequence inputStr = "abbabcd"; // could be a String type
String patternStr = "(a(b*))+(c*)";

// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find();

if (matchFound) {
    // Get all groups for this match
    for (int i=0; i<=matcher.groupCount(); i++) {
        String groupStr = matcher.group(i);
    }
}
于 2012-08-10T10:47:55.587 回答
0

请举个例子。我想您需要阅读 Mathcer 文档http://docs.oracle.com/javase/7/docs/api/index.html?java/util/regex/Matcher.htmlgroup您可以通过方法访问捕获组。

于 2012-08-10T10:49:58.907 回答