• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zeroonnet

regex

5 mensagens neste tópico

Boas,

epa tenho este código:

        public Regex MyRegex = new Regex(
              "<td class=\"(.*)\"><a title='<span>(.*)</span><br/>(.*)' id=" +
              "'dest0' href='javascript:PreviewProgram(\"([0-9])\");'>(.*)<" +
              "/a></td></tr><tr><td align=\"center\" class=\"(.*)\" >(.*)</" +
              "td>",
            RegexOptions.CultureInvariant
            | RegexOptions.Compiled
            );

//depois dentro do form_load tenho:

            StreamReader fi = File.OpenText("http.html");
            string input = null;
            //string input2 = null;
            while ((input = fi.ReadLine()) != null)
            {
                Match m = MyRegex.Match(input);
                listBox1.Items.Add(m);
            }
            fi.Close();

e eu quero fazer o seguinte:

tenho esta linha no http.html:

<td class="epgFilm"><a title='<span>O Cabo Do Medo</span><br/>Depois de passar 14 anos na prisão, um psicopata volta para se vingar do advogado que o condenou, at...' id='dest0' href='javascript:PreviewProgram("364070341");'>O Cabo Do Medo</a></td></tr>

<tr><td align="center" class="epgPos epgTime" >2:24</td>

e dai queria tirar:

O cabo do medo

364070341

2:24

só que não me tá a retornar nada :S será que agluém me pode ajudar?

Fiquem Bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm...

Não estive a experimentar, mas onde tens [0-9] não devia de ser [0-9]+ ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja tentei pro e mesmo assim não dá... mas acho que o problema tá aqui:

"'dest0' href='javascript:PreviewProgram(\"([0-9])\");'>(.*)<"

pois se eu escolher só a primeira linha dá bem xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois...... "[0-9]" se bem me lembro deve devolver só um caracter... para apanhares um numero arbitrario de caracteres deve usar um asterisco tal como fazes para o metacaracter ".""'dest0'

Experimenta assim:

href='javascript:PreviewProgram(\"([0-9]*)\");'>(.*)<"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu já te disse no irc, mas deixo a resposta aqui também (assim, se te esqueceres, podes vir aqui buscar ;))

Apesar de o regex ter sido feito no Python, ele deverá de ser semelhante.

>>> t = """<td class="epgFilm"><a title='<span>O Cabo Do Medo</span><br/>Depois de passar 14 anos na prisão, um psicopata volta para se vingar do advogado que o condenou, at...' id='dest0' href='javascript:PreviewProgram("364070341");'>O Cabo Do Medo</a></td></tr>

>>> pattern = re.compile("\D*\<span\>([\D|\d]*)\<\/span>[\D|\d]*PreviewProgram\(\"(\d*)\"\)[\D|\d]*epgTime\"\ \>(\d*\:\d*)")

>>> re.search(pattern, t).groups()

('O Cabo Do Medo', '364070341', '2:24')

(A parte a negrito é o que interessa :))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora