java - 如何从正则表达式中捕获值?

标签 java regex

如何从正则表达式中提取值,其中任何占位符都可以通过 $number_of_occurrence 值重新引用?

例如,我有一个字符串 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吗?是?您可以迭代这些来识别匹配的子表达式。

来自链接的示例。匹配器。 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/

相关文章:

java - MongoDB 使用正则表达式查找的行为与 Java 不同

java - 当按钮似乎是从 JavaScript 生成时,如何使用 Selenium 访问按钮

java - 关于序列化、serialVersionUID、类不兼容

java - 写入 volatile 变量如何/为什么会导致其他变量的刷新?

python - 在python中读取.dat文件

javascript - 仅在文本框中允许中文字符和英文数字 - Javascript

java - 如何在eclipse的侧边栏中查看对象的方法

Python正则表达式不匹配行尾

用于在电子邮件 vba 中获取特定单词的正则表达式

c# - 如何使用正则表达式更改字符串中的组