Como pegar um valor central por regex ? [RESOLVIDO]

3 respostas
Lavieri

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 ??

3 Respostas

T
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) + "]");
        }
    }
}
T

E de qualquer maneira, leia:

http://aurelio.net/er

Lavieri

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
Criado 5 de junho de 2009
Ultima resposta 5 de jun. de 2009
Respostas 3
Participantes 2