Recebo uma resposta assim:
0010Palavra0025Outra-Palavra0029Outra.noticia0123Outra/Musica
Gostaria de obter esse resultado:
0010Palavra
0025Outra-Palavra
0029Outra.noticia
0123Outra/Musica
ou seja, separar a cada 4 números porém pegar tudo até encontrar mais 4 números pois ai faz parte do próximo registro. E também na palavra após o número tem - / . e outros caracteres…
Grato a quem ajudar
Sim, tem como fazer, algo como [0-9]{4} que começe com numeros com 4 caracters, monte seu Pattern:
http://www.guj.com.br/article.show.logic?id=1
Da para testar sua expressão: aqui:
http://www.javaregex.com/testbig.html
Vai melhorando isso, ta quase lá:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Teste {
public static void main(String[] args) {
String ocorrencia = "0010Palavra0025Outra-Palavra0029Outra.noticia0123Outra/Musica ";
Pattern p = Pattern.compile("[0-9]{4}[A-Za-z]{2,}");
Matcher m = p.matcher(ocorrencia);
while (m.find()) {
System.out.println(m.group(0));
}
}
}
Agora funciona mais melhora um pouquinho vai:
Pattern p = Pattern.compile("[0-9]{4}[A-Za-z.-/]{2,}");
[quote=Pedrosa]Sim, tem como fazer, algo como [0-9]{4} que começe com numeros com 4 caracters, monte seu Pattern:
http://www.guj.com.br/article.show.logic?id=1
Da para testar sua expressão: aqui:
http://www.javaregex.com/testbig.html
[/quote]
valeu cara, to tentando aqui, a maior dificuldade é em palavras separadas por caracteres, tipo 0025Outra-Palavra , 0025Outra/Palavra, o que mata é esse caracter no meio… problema é que ele pode aparecer ou não…mas vou tentar mais aqui…
Coloquei o Pattern:
Pattern p = Pattern.compile("[0-9]{4}[A-Za-z.-/]{2,}");
Vamos lá: que comece com 4 numeros e tenha letras maiusculas e minusculas e contenha .-/ com no minimo 2 caracters.
Veja se funciona, acesse esse site é bem legal:
http://guia-er.sourceforge.net/lista.html