如何从正则表达式中提取值,而$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中的值的值,并找到所有匹配的行中哪个在此位置具有最大的值。

最佳答案

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

从链接的示例。 Matcher。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);
    }
}

关于java - 如何从正则表达式中获取值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11900043/

10-11 04:47
查看更多