Solución:
Pregunta 1: Restringir a ciertos personajes
Tienes razón, esto es fácil de resolver con expresiones regulares:
import re
input_str = raw_input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print "Error! Only letters a-z allowed!"
sys.exit()
Pregunta 2: Restringir a cierta longitud
Como Tim mencionó correctamente, puede hacer esto adaptando la expresión regular en el primer ejemplo para permitir solo un cierto número de letras. También puede verificar manualmente la longitud de esta manera:
input_str = raw_input("Please provide some info: ")
if len(input_str) > 15:
print "Error! Only 15 characters allowed!"
sys.exit()
O ambos en uno:
import re
input_str = raw_input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print "Error! Only letters a-z allowed!"
sys.exit()
elif len(input_str) > 15:
print "Error! Only 15 characters allowed!"
sys.exit()
print "Your input was:", input_str
Las expresiones regulares también pueden limitar el número de caracteres.
r = re.compile("^[a-z]{1,15}$")
le da una expresión regular que solo coincide si la entrada es letras ASCII completamente minúsculas y de 1 a 15 caracteres de longitud.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)