Busquei informações no google sobre regex, mas não consegui entender.
Preciso criar um regex para pegar somente o valor que estiver entre o “=” e a primeira ocorrência de “/”.
Mas a minha string pode vir das maneiras a seguir:
Sendo que na primeira e segunda o valor desejado será 43789.
A última somente o 43789_1.
O que vem antes do “=” irá variar, mas não me interessa o valor.
Não entendi, cara. Resolve o que?
você nunca vai chegar depois do ‘=’ com s.substring(0,4)
F
filipechaves
unico padrão dessas strings, são os 5 primeiros iguais…
mas eu realmente entendi enrrado a pergunta.
CyberX
Just to help.
Não é das melhores soluções mas estou postando uma solução que ainda contem alguns problemas
mas acho que esse pode ser o caminho. Creio que se melhorar o regex vai funcionar belezinha.
publicstaticvoidmain(String[]args){// Criado array para não repetir condição de replaceargs=newString[4];args[0]="43789/32/1=43789/32/1";args[1]="43789/32/1";args[2]="43789";args[3]="43789_1=43789_1";Stringcond1=".*=(\\d*_?\\d*).*";Stringcond2="(\\d*).*";Stringr;StringBuffersb=newStringBuffer();for(inti=0;i<args.length;i++){if(args[i].matches(cond1)){r=args[i].replaceAll(cond1,"$1");sb.append(r+"\n");}elseif(args[i].matches(cond2)){r=args[i].replaceAll(cond2,"$1");sb.append(r+"\n");}}System.out.println(sb.toString());}
Flws.
F
felipeaps
Dá pra fazer na gambiarrex tb.
Algo do tipo. hehehehe
Creio que gambiarra não seria uma solução plausível. Regex seria mais fácil de visualizar e entender.
Mas toda tentativa é válida.
Flus.
William_Ricardo
avsouza:
Busquei informações no google sobre regex, mas não consegui entender.
Preciso criar um regex para pegar somente o valor que estiver entre o “=” e a primeira ocorrência de “/”.
Mas a minha string pode vir das maneiras a seguir:
…
O sinal de igualdade precisa ocorrer para chegar a um resultado.
Logo…
String s = "43789/32/1";
String s = "43789";
não retornaria nada, segundo a lógica…
xandevieira
WRYEL:
de todos lugares que já mechi com regex, o do java é o que sempre me dá mais trabalho, testa ai e ve se funciona pra você:
edit: se você quiser pegar um espaço em branco “” sempre que vier =/ você troca o + pelo *
Verificando melhor minha regra de negócio, não precisarei me preocupar com strings deste jeito, pois terei uma outra string de controle que indicará a origem, dependendo qual será impresso vazio.
Funcionou assim: