Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2010, 13:58
Avatar de BaByRoDrI
BaByRoDrI
 
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 14 años, 10 meses
Puntos: 1
Exclamación Problema con expresiones regulares

Estoy aprendiendo a usar esto de las expresiones regulares e hice una que pueda validar los siguientes tipos de datos:

192.168.1.0
192.168.1.0/24
192.168.1.0 255.255.255.0


Para ello me salio la siguiente expresión regular:

Código:
^(\d{1,3}\.){3}\d{1,3}(( (\d{1,3}\.){3}\d{1,3})|(/\d{1,2}))?$
Y la utilice en un código PHP de la siguiente manera:

Código PHP:
Ver original
  1. if (!preg_match('/^(\d{1,3}\.){3}\d{1,3}(( (\d{1,3}\.){3}\d{1,3})|(/\d{1,2}))?$/', $info)) {
  2.             echo '<div class="alert">Valor invalido</div>';
  3.             echo '<div>Usa la IP y la m&aacute;scara de subred CDIR: 10.0.0.1/22</div>';
  4.             echo '<div>O usa la IP y la m&aacute;scara de subred: 10.0.0.1 255.255.255.0</div>';
  5.             exit;
  6.         }

Lamentablemente siempre que pongo un valor valido siempre me da que no es así :S, me manda el siguiente error:

Warning: preg_match() [function.preg-match]: Unknown modifier '\' in C:\Servidor\htdocs\calcip\class_calcip.php on line 5

Incluso probé mi expresión en esta web: http://rejex.heroku.com/ y si me valida correcto! No tengo la más mínima idea de porque en mi código no funciona como debe!

No entiendo porque no me funciona :S