Solución de problemas “El delimitador no debe ser alfanumérico o barra invertida” error al cambiar ereg () a preg_match ()

Posible duplicado:
Conversión de expresiones ereg a preg

<?php $searchtag = "google"; $link = "http://images.google.com/images?hl=de&q=$searchtag&btnG=Bilder-Suche&gbv=1"; $code = file_get_contents($link,'r'); ereg("imgurl=http://www.[A-Za-z0-9-]*.[A-Za-z]*[^.]*.[A-Za-z]*", $code, $img); ereg("http://(.*)", $img[0], $img_pic); echo ''; ?> 

Y obtengo este error

Obsoleto: la función ereg () está en desuso en C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php en la línea 5

Obsoleto: la función ereg () está en desuso en C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php en la línea 6

Las funciones preg_match () dan este error

Advertencia: preg_match () [function.preg-match]: Delimitador no debe ser alfanumérico o barra invertida en C: \ Archivos de progtwig \ EasyPHP-5.3.8.1 \ www \ m \ img.php en la línea 6

Advertencia: preg_match () [function.preg-match]: El delimitador no debe ser alfanumérico o de barra invertida en C: \ Program Files \ EasyPHP-5.3.8.1 \ www \ m \ img.php en la línea 7

  1. ereg está en desuso. No lo uses
  2. Las funciones de preg son todas las “expresiones regulares de Perl” lo que significa que necesitas tener algún tipo de marcador de inicio y final en tu expresión regular. A menudo esto será / o # , pero cualquier no alfanumérico funcionará bien.

Por ejemplo, estos funcionarán:

 preg_match("/foo/u",$needle,$haystack); preg_match("#foo#i",$needle,$haystack); preg_match("@foo@",$needle,$haystack); preg_match("\$foo\$w",$needle,$haystack); // bad idea because `$` means something // in regex but it is valid anyway // also, they need to be escaped since // I'm using " instead of ' 

Pero esto no:

 preg_match("foo",$needle,$haystack); // no delimiter! 

Con preg_match() su expresión regular debe comenzar y finalizar con un delimitador como / con algunas excepciones (por ejemplo, agregando “i” al final para insensibilizar mayúsculas y minúsculas).

p.ej

 preg_match('/[regex]/i', $string)