Regular Expression numa página HTML (pattern)

5 respostas
B

Olá!

Estou me aprofundando no Regex - realmente muito útil. Li vários tutoriais, mas ainda estou meio perdido. Gostaria de propor um problema para aprender com a solução.

Supõe a página em HTML das comunidades do orkut:
[size=9][i]…

Google Earth 28/11/2006 15:43 33.517 Mochileiros 28/11/2006 15:34 125.590 ...[/i][/size]

Gostaria de ter um pattern que me retorne só os nomes das comunidades contidas em: “Mochileiros

Como fica isso?
Grato

5 Respostas

G

Fiz algo parecido estes dias…

Eu utilizer o link que sempre é o mesmo no patern, facilitando a busca…

ficaria algo como:

<a href="/Community.aspx?cmm=[0-9]"[ >][\w ]*
Mochileiros

Da para generelizar muito, mas assim ja deve funcionar…

Espero que ajude…

B
public static String[] pegaPadrao(String patterm, String page){
        Vector<String> lista = new Vector();
        Pattern pattern = Pattern.compile(patterm);
        Matcher matcher = pattern.matcher(page);
        
        while (matcher.find()){
            String item = matcher.group(1);
            if (!lista.contains((Object)item))
                lista.add(item);
        }
        // organiza e converte para array
        Collections.sort(lista);
        String resultado[] = new String[lista.size()];
        for (int x=0; x<lista.size(); x++)
            resultado[x] = lista.get(x);
        
        return resultado;
    }

    public static void main(String[] args) {    
        String page = getPage("http://www.orkut.com/Communities.aspx");
        String patterm = "<a href=\"/Community\\.aspx\\?cmm=[0-9]*\"[ >]*([\\w ]*)</a>";
        String resultado[]= pegaPadrao(patterm, page);
        
        for (int x=0; x<resultado.length; x++)
            System.out.println(resultado[x]); 
        
    }
G

:thumbup:

B

Na verdade, estou conferindo agora e o programa não me retornou as comunidades com acento, “-”, “!” e “/”.

Algo errado com o padrão? :oops:

G

Onde tem o \w adicione o que você quer que contenha no texto… pode colocar um . que ele traz todos os caracteres e fazer uma negação para não trazer o fechamento da tag.
ai vc tem que ir testando com o conteúdo.

Da uma olhada neste site, pode ajudar: http://www.regular-expressions.info
ou então na API da classe Pattern do site do java. Lá vc encontra alguma coisa ou outra pra trabalhar co RegExp.

Criado 28 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 5
Participantes 2