Java Regex Group

1 resposta
regex
E

Boa tarde
estou tentando criar uma expressao regular para trazer uma parte da string porem sem sucesso ainda.
eu tenho por exemplo a seguinte string
13*123456
quero retornar apenas a primeira parte (hj eu uso G0*1, que me retorna 13), isso seria bem simples caso usa-se um split
porem eu tenho
13*MS*MS*005*1*SV
ae quero retornar apenas a parte do MS*005*1
no sistema atual eu uso a seguinte forma (G2*3)
que seria me retorna a partir do segundo campo separado por * ae conta 3, e este separador pode ser qq outro caracter

1 Resposta

Villagram

Não entendi direito o que vc quer fazer, mas acho que esse código pode ajudar:

public void test() {

try {

String str_entrada = 13<em>MS</em>MS<em>005</em>1*SV;

String str_pesquisa = G2*3;

Pattern p = Pattern.compile("(\w+)+");

Matcher m = p.matcher(str_entrada);

List resultado = new ArrayList();

while (m.find()) {

resultado.add(m.group());

}

if (resultado.size() > 0) {

int group_start = Integer.parseInt(str_pesquisa.substring(1, 2)) - 1;

int count = Integer.parseInt(str_pesquisa.substring(3, 4));

for (int i = 0; i != count; count) {

System.out.println(resultado.get(group_start++));

}

} else {

System.out.println(Pesquisa sem retorno!);

}

} catch (Exception e) {

System.out.println(Algo deu errado!);

e.printStackTrace();

}

}
Criado 31 de janeiro de 2018
Ultima resposta 26 de dez. de 2018
Respostas 1
Participantes 2