Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Expresiones regulares .. que podrias necesitar

# Request HTTP de un metodo POST
req = self.request()

#Valida el campo login
if not re.match (’[A-Za-z0-9\-]’,req.field(’login’)):
raise ValidarError, “El login no puede contener simbolos de puntuacion”

#Valida el campo username
if not re.match (’[.A-Za-z]’,req.field(’username’)):
raise ValidarError, “Nombre de Usuario no valido”

#Validando el correo el electronico
if not re.match (’^[^@ ]+@[^@ ]+.[^@ .]+$’,req.field(’email’)):
raise ValidarError, “Correo Electronico no valido”

#Validando una fecha mm-dd-yyyy
if not re.match (’^[0-1][0-9][-/][0-3][0-9][-/][0-9]\{4\}$’,req.field(’fecha’)):
raise ValidarError, “Fecha no valida”

#Validando un precio unitario (cantidad en moneda x)
if not re.match (’^\b[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?\b’, req.field(’precio’)):
raise ValidarError, “Cantidad invalida”

#Valida una fecha de manera mas exacta yyyy-mm-dd
if not re.match (’^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$’ , req.field(’fecha’)):
raise ValidarError, “Fecha no valida”

#Valida un punto flotante negativo o positivo
if not re.match (’^[-+]?[0-9]*\.?[0-9]*$’ , req.field(’numero_punto_flotante’)):
raise ValidarError, “Numero no valido”

#Valida una notacion cientifica 1.5e8
if not re.match (’^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$’ , req.field(’numero_punto_flotante’)):
raise ValidarError, “Numero no valido”

La siguiente checa que el correo sea valido… no trates de entenderla solo lo hace…

if not re.match( '^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[x01-x08x0bx0cx0e-x1fx21x23-x5bx5d-x7f]|\[x01-x09x0bx0cx0e-x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[x01-x08x0bx0cx0e-x1fx21-x5ax53-x7f]|\[x01-x09x0bx0cx0e-x7f])+)])$' , req.field('email')):
	raise ValidarError, "Correo electronico no valido"

#Validanto tarjetas de credito
Expresion regular para VISA: ^4[0-9]{12}(?:[0-9]{3})?$
Expresion regular para MasterCard: ^5[1-5][0-9]{14}$
Expresion regular para American Express: ^3[47][0-9]{13}$
Expresion regular para Diners Club: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$
Expresion regular para Discover: ^6(?:011|5[0-9]{2})[0-9]{12}$
Expresion regular para JCB: ^(?:2131|1800|35\d{3})\d{11}$
# Si deseas checar el numero de tarjeta que sera valido en un solo campo… tu pueda unir las expresiones regulares mediante el simbolo pipe de unix

* 000..255: ^([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$
* 0 or 000..255: ^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$
* 0 or 000..127: ^(0?[0-9]?[0-9]|1[0-1][0-9]|12[0-7])$
* 0..999: ^([0-9]|[1-9][0-9]|[1-9][0-9][0-9])$
* 000..999: ^[0-9]{3}$
* 0 or 000..999: ^[0-9]{1,3}$
* 1..999: ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$
* 001..999: ^(00[1-9]|0[1-9][0-9]|[1-9][0-9][0-9])$
* 1 or 001..999: ^(0{0,2}[1-9]|0?[1-9][0-9]|[1-9][0-9][0-9])$
* 0 or 00..59: ^[0-5]?[0-9]$
* 0 or 000..366: ^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-6][0-9]|36[0-6])$

Una direccion ip

'b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b'

Verifica la correcta escritura de un path en windows : ‘\b[a-z]:\\[^/:*?”<>|\r\n]*’

Bernardo

December 6, 2008 @ 9:42 pm

trate de usar la ultima expresion regular pero no funciono;

le puse la seiguiente cadena C:\Users\jorge\Downloads
no se si es la forma correcta de escribir la direccion

RSS feed para comentarios en esta entrada · TrackBack URI

Comenta