Ajuda com Regex

Galera, tenho que fazer uma regex para o seguinte treixo de código:

[code]

11/03/1996 41 05 04 52 30 33[/code]

onde o mesmo repete varias vezes em um documento…

fiz a seguinte expressão:

<td>\\d{2}/\\d{2}/\\d{4}</td>\\n*<td>\\d{2}</td>\\n*<td>\\d{2}</td>\\n*<td>\\d{2}</td>\\n*<td>\\d{2}</td>\\n*<td>\\d{2}</td>\\n*<td>\\d{2}</td>

Porem não funciona, alguem tem alguma ideia do que seja ?

Obs: o código está correto pois testei outras expressões e deu certo.

oq vc quer pegar?

todos os tds? tds vazios? oq?

[]'s

Uma pergunta, você quer uma expressão regular para o conjunto ou para todos os itens individualmente??

se a resposta foi sim para segunda pergunta
tai

(<td>)([0-9]{2})([/][0-9]{2}[/][0-9]{4})*(</td>)

Vê se te ajuda

by the way, vale a pena testar regex em algum testador online tipo
http://regexpal.com/

abraços

Todos os valores, porem separados…

fsuzuki, deu certio a expressão… porem ele pega qlqr tag

com 2 números dentro,

eu precisava que fossem na seguida que eu passei…

paulohms

há duas saida possíveis.
Verificar se o item anterior está no padrão da tag que você quer, ou outra expressão regular.

eu poderia de dar a outra expressão regular pronta, porém você não ia evoluir como desenvolvedor certo :wink:

portanto vale a pena dar uma estudada em regex.

http://www.guj.com.br/java/103520-regex—expressao-regular-em-java

e como eu disse no post anterior, vale a pena colocar um exemplo do documento e ir fazendo sua regex
no http://regexpal.com/

fsuzuki,

Os padrões estão corretos, atualmente trabalho com expressões regulares, porem faço as mesmas em shell script e em perl no qual já fiz o mesmo nas duas linguagens e está tudo certo, só em java que não funciona,…

pelos testes realizados percebi que é pelos espaços…

Se tu sabe alguma solução por favor poste ai para me ajudar…

Vlw !

Obs: no regextester a expressão funciona blzinha.

Só tô postando aqui esse resultado porque pensamos juntos nesse problema e chegamos a varias formas de solucionar, mas esta aqui estou usando duas regex para garantir integridade da informação com base na parte concreta que é a data do sorteio seguido de 6

. Fazendo a Leitura de Byte pra um StringBuilder como haviamos comentado para não ficar instanciando toda a vida uma nova String. Bom Acho que ficou legal, qualquer duvida de alguem que ficou interessado tamos aê. Ah dados.txt esta o codigo fonte com resulatdos da mega sena sem tratamento. saida.txt é o file onde está a informação tratada. Valew Paulo, foi legal!

package br.com.barbini;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Aplicacao {

	public static void main(String[] args) throws IOException {

		InputStream is = new FileInputStream("dados.txt");
		Writer w = new FileWriter("saida.txt");

		byte[] buffer = new byte[1024];

		int bytesLidos;

		StringBuilder s = new StringBuilder();

		while ((bytesLidos = is.read(buffer)) > -1) {

			s.append(new String(buffer, 0, bytesLidos));

		}

		Pattern p1 = Pattern
				.compile("<td>\\d{2}/\\d{2}/\\d{4}</td>\\s*((?:<td>\\d{2}</td>\\s*){6})");

		Pattern p2 = Pattern.compile("<td>(\\d{2})</td>");

		Matcher m1 = p1.matcher(s);

		while (m1.find()) {

			Matcher m2 = p2.matcher(m1.group(1));

			int x = 0;

			while (m2.find()) {

				w.write(m2.group(1) + " ");
				x++;

				if (x % 6 == 0)
					w.write("\n");

			}

		}
		w.close();

	}

}