Hace días hice un post en el que pedía si alguien me podía ayudar con una expresión regular que descartara todos los links que tuvieran una palabra determinada, pues bien, la expresión que me distéis me sirvió de mucho y funciona a la perfección, pero resulta que ahora necesito todo lo contrario. Necesito una expresión regular que recoja todos los links que contengan una determinada palabra.
Ejemplo:
- Código: Seleccionar todo
<a href="http://money.cnn.com/2006/11/28/pf/heating_costs_savings/index.htm?postversion=2006112816">The Bottled Water Lie</a>
<a href="http://money.cnn.com/2006/11/28/markets/markets_0545/index.htm?postversion=2006112817">The Bottled Water Lie</a>
<a href="http://money.cnn.com/data/afterhours/">Test</a>
<a href="http://money.cnn.com/popups/2006/moneymag/fivegifts/index.html">Test2</a>
Los 2 primeros son los links buenos, contienen la palabra "postversion".
La expresión de la que parto es esta:
- Código: Seleccionar todo
$expresion =~ /<a href="((?:(?!video).)+)">([^\>]+)<\/a>/g;
Esta expresión es la que me disteis para coger todos los links que no contengan la palabra vídeo. He intentado hacer:
- Código: Seleccionar todo
$expresion =~ /<a href="((?:(postversion).)+)">([^\>]+)<\/a>/g;
Pero evidentemente no funciona. ¿Me podéis ayudar?
Muchas gracias.
PD: Por cierto, los ':', ¿que significan?