Expressões regulares [a Trilogia]

1 resposta
Algebra

Olá pessoal

Alguem sabe me dizer pq meu padrão não funciona

String aux2 = null;
 Pattern pat = Pattern.compile ("((i+r[0|1|2|3|4]v+i*)|(k+r[0|1|2|3|4]v+k*))+"); //pego a sequencia de caracteres que está agrupada
 Matcher mat = pat.matcher("vkr4viab");
 aux2 = mat.find()? mat.group() : "";
 JOptionPane.showMessageDialog(null, " achou" + aux2);

a saída desejada é essa

String saida = "kr4vi";

quero manter r[0|1|2|3|4]v e pegar qualquer sequencia de k ou i vizinhos

de modo que se a String fosse:

String s ="kabikr1vikbaia";

a saída desejada seria

String saida = "ikr1vik";

ou seja eu pego a sequencia conexo a “r1v”

1 Resposta

Algebra

Cheguei a solução usando este padrão:

Pattern pat = Pattern.compile ("([k|i]*r[0|1|2|3|4]v[k|i]*)+");
Criado 23 de outubro de 2010
Ultima resposta 23 de out. de 2010
Respostas 1
Participantes 1