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

zeroonnet

Regex

11 mensagens neste tópico

Boas,

Epa tenho uma expressão regular que funciona pois a testei num programa para tal.

<td class="borderdir borderinf aligcentro"><span class="c53tam11">(-*|\w*)</span></td>

Essa é a expressão mas não a consigo meter a funcionar em PHP... Retorna os que correspondem à parte "-*" mas quanto ao "\w*" não retorna nada :S

<td class="borderdir borderinf aligcentro"><span class="c53tam11">ACÇÃO</span></td>
<td class="borderdir borderinf aligcentro"><span class="c53tam11">TERROR</span></td>
<td class="borderdir borderinf aligcentro"><span class="c53tam11">00:40</span></td>
<td class="borderdir borderinf aligcentro"><span class="c53tam11">---</span></td>

Por exemplo aqui só deve retornar Acção, Terror, ---.

Mas em php só me está a retornar o "---".

preg_match_all('/(<td class="borderdir borderinf aligcentro"><span class="c53tam11">(-*|\w*)<\/span><\/td>)/', $site, $match);

É assim que tenho no php.

Se alguém souber o erro diga sff :)

Fiquem Bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um var_dump() ao $match só te dá o ---?

Experimenta escapares o - (usares \-).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, testas-te em que programa? E esse programa em que modo de compatibilidade estava?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epa mas que grande LOL. Desde já as minhas desculpas mas o erro é todo meu, a minha variavel $site nao tinhas os valores correctos logo não mostrava o que queria obvio. O meu regex afinal funciona a 100% tal como o do djthyrax :)

Já agora tiracio, porque metes uma "\" antes do "-" ? Isso é escape para caracteres especiais e por acaso funciona mas o "-" não é especial pois não?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu julgo que não é especial, mas vi exemplos com ele escapado e prevenir nunca fez grande mal a ninguém. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu julgo que não é especial, mas vi exemplos com ele escapado e prevenir nunca fez grande mal a ninguém. :)

O caractere "-" representa um range, exemplo a-z equivale a abcdefg.....z, daí a lógica do fazer escape ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim mas apresenta um range caso esteja entre [] se não acho que é um caracter normal :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O [] representa o conjunto de possibilidades que podes ter, não só o range.

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