/ / Como faço para capturar valores de um regex? - java, regex

Como faço para capturar valores de uma regex? - java, regex

Como extrair valores de um regex onde qualquer espaço reservado pode ser rederenciado por um $number_of_occurance value?

Por exemplo, eu tenho uma string final_0.25Seg1-Frag1 e quero encontrar todas as correspondências dessa string em um arquivo com 0.25 como um curinga, o que eu posso fazer usando

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

Eu quero manter o valor do valor em \d+\.\d e descobrir qual dentre todas as linhas combinadas tem o maior valor nessa posição.

Respostas:

2 para resposta № 1

Você já olhou Grupo padrãos? Você pode iterar por meio deles para identificar subexpressões correspondentes.

Do exemplo vinculado. Matcher.grupo(0) é a expressão completa.

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);
}
}

0 para resposta № 2

Por favor, dê um exemplo. Eu acho que você precisa ler documentos Mathcer http://docs.oracle.com/javase/7/docs/api/index.html?java/util/regex/Matcher.html. Você pode acessar grupos de captura via group método.