thingol 5 de jun. de 2009
import java.util.regex.* ;
class TesteRegex47 {
/*
* Deve imprimir:
pat: [xemele]
pat: [/xemele]
*/
public static void main ( String [] args ) {
Pattern pat = Pattern . compile ( "<(/?[^>]+)>" );
String s = "<xemele>isto eh um xe me le ou um xis eme ele - depende de onde se fala</xemele>" ;
Matcher mat = pat . matcher ( s );
while ( mat . find ()) {
System . out . println ( "pat: [" + mat . group ( 1 ) + "]" );
}
}
}
thingol 5 de jun. de 2009
E de qualquer maneira, leia:
http://aurelio.net/er
Lavieri 5 de jun. de 2009
vlw thingol!! .... era justamente o m.group(index) que estava faltando \o/
resolvi meu problema
em um pequeno teste
String cep = "<cep> 58045123</cep><uf> PB</uf><cidade> João Pessoa</cidade> " +
"<bairro> Cabo Branco</bairro><tipo_logradouro> Travessa</tipo_logradouro> " +
"<logradouro> Monsenhor Odilon Coutinho</logradouro><resultado> 1</resultado> " +
"<resultado_txt> sucesso. cep encontrado ceps_completa</resultado_txt> " +
"<limite_buscas> 5</limite_buscas><ibge_uf> 25</ibge_uf> " +
"<ibge_municipio> 250750</ibge_municipio> " +
"<ibge_municipio_verificador> 2507503</ibge_municipio_verificador> ";
Map<String , String > map = new HashMap<String , String > ();
Pattern p2 = Pattern.compile("< ([\w]*)>([^< ]*)< /[\w]*>");
Matcher m2 = p2.matcher(cep);
while(m2.find()) {
if (m2.groupCount() == 2)
map.put(m2.group(1), m2.group(2));
}
for(Map.Entry e : map.entrySet())
System.out.println(e.getKey() +" = " + e.getValue());
o resultado é um mapa com os valores bem acertados \o/ !!!
bairro = Cabo Branco
cidade = João Pessoa
cep = 58045123
uf = PB
ibge_uf = 25
logradouro = Monsenhor Odilon Coutinho
resultado = 1
ibge_municipio_verificador = 2507503
limite_buscas = 5
tipo_logradouro = Travessa
ibge_municipio = 250750
resultado_txt = sucesso. cep encontrado ceps_completa