Dúvida com Expressões regulares [RESOLVIDO]

1. Dúvida com Expressões regulares [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 30/07/2011 - 00:53h

Olá,

eu tenho um arquivo HTML enorme, e quero pegar uma string nele. Basicamente o que me interessa no arquivo é este trecho:

<span class="postdetails"> Classificacao: GUJ Ranger </span>

Então, o que quero é pegar a string que está entre o Classificação e o </span> Como eu poderia pegar o que está entre eles? No caso, o resultado deve ser GUJ Ranger.

Obrigado!

Ah, este é o único trecho que possui a Classificação.

Obrigado.


  


2. MELHOR RESPOSTA

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 30/07/2011 - 08:45h

Oi André,

Uma maneira de fazer assumindo que a string só contém caracteres alfanuméricos, underline e/ou espaços:

$ echo '<span class="postdetails"> Classificacao: GUJ Ranger </span>' | grep -Eo 'Classificacao: (\w| )+\w' | cut -b 16-

Se você tiver a linha salva em alguma variável, digamos ${linha}, pode passá-la direto para o grep:

$ grep -Eo 'Classificacao: (\w| )+\w' ${linha} | cut -b 16-

Abraço!

3. Re: Dúvida com Expressões regulares [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 30/07/2011 - 10:11h

Júlio,
na verdade não vou usar com o grep, e sim em um programa escrito em Java. Sabe como eu poderia faze-lo?

Obrigado.


4. Biblioteca de expressões regulares

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 30/07/2011 - 10:22h

Oi André,

Como a pergunta está no fórum de Shell Script, pensei que não seria problema usar o grep.

Nunca programei em Java, talvez exista uma biblioteca para expressões regulares como existe para C++. Se puder usar Python, ela tem suporte nativo.

Abraço!


5. Re: Dúvida com Expressões regulares [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 30/07/2011 - 10:46h

Sim, o Java tem a sua biblioteca de expressões regulares, a Regex. Minha dúvida é sobre como ficaria a expressão regular.


6. Expressões regulares são consistentes

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 30/07/2011 - 11:13h

As expressões regulares são praticamente as mesmas em todas as linguagens, a única coisa que muda é o escape de alguns caracteres especiais devido a forma como a linguagem interpreta os literais.

Resta você transcrever a expressão que passei inserindo possivelmente algum '\' antes dos caracteres '(', ')', 'w'.

Talvez seja hora de marcar o tópico como resolvido e abrir um novo na comunidade Java.


7. Re: Dúvida com Expressões regulares [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 30/07/2011 - 20:33h

hmm

Não posso testar agora, no entanto. Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts