por exemplo, digamos que não queria usar pacotes XML (e não quero) … hehehe…
como encontrar o valor central de um regex ??
String regex = "<(\w)*>";
queria encontrar o valor de (\w)* … como encontrar essa parte ?? sem ter q fazer algo como
String achado = m.group();
achado.subString(1,achado.length());
existe alguma forma ?? de localizar a parte curinga ?? por regex ??
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) + "]");
}
}
}
E de qualquer maneira, leia:
http://aurelio.net/er
vlw thingol!! … era justamente o m.group(index) que estava faltando \o/
resolvi meu problema
em um pequeno teste
[code]
String cep = “58045123PBJoão Pessoa” +
“Cabo Branco<tipo_logradouro>Travessa</tipo_logradouro>” +
“Monsenhor Odilon Coutinho1” +
“<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());[/code]
o resultado é um mapa com os valores bem acertados \o/ !!!
[quote]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
[/quote]