¡¡¡¡Hola buenas!!!!
Voy a reabrir el hilo con un nuevo reto.
La expresión regular de ikegami funciona bien siempre que enviemos a comparar un link detrás de otro, pero si lo que hacemos es enviar un texto con un conjunto de links la expresión no funciona correctamente.
Aquí tenéis el trozo de código que funciona:
Using perl Syntax Highlighting
my $links = qq{
<a href
="/story/43480/">The Bottled Water Lie
</a
>
<a href
="/story/video/43480/">The Bottled Water Lie
</a
>
<a href
="/story/43967/">Test
</a
>
};
while ( $links =~ /href="([^\"]+)">([^\>]+)<\/a>/isg) {
my ($url, $title) = ($1, $2);
print("$url: $title\n");
}Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Si utilizamos este código, el programa nos mostrará la url y el texto de cada link. En tres líneas.
Lo que yo necesito es una expresión regular que haga lo mimo pero que en el caso de que aparezca la palabra video en el href no muestre el link.
El código original no puede modificarse. Sólo la expresión regular.
También os pongo el mismo trozo pero con la expresión de ikegami para que veáis que no funciona como yo lo necesito.
Using perl Syntax Highlighting
my $links = qq{
<a href
="/story/43480/">The Bottled Water Lie
</a
>
<a href
="/story/video/43480/">The Bottled Water Lie
</a
>
<a href
="/story/43967/">Test
</a
>
};
while ( $links =~ /href="((?:(?!video).)+)">(.+)<\/a>/isg) {
my ($url, $title) = ($1, $2);
print("$url: $title\n");
}Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Muchas gracias a todos