Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
ER para saber si una palabra cumpla ciertas condiciones.
#1
Bueno eso, queria saber y conocer algún ej. Con expresiones regulares para lograr lo mismo.

Supongamos un ejemplo en el que queremos comprobar si una determinada palabra cumple las siguientes condiciones:
• Su longitud total es mayor que 4.
• Empieza por “p”.
• Contiene, al menos, una “y”.

palabra = "python"
if len(palabra) > 4 and palabra.startswith('p') and palabra.count('y') >= 1:
    print("Todo ok")
else:
    print("Algo no coincide")     

-----------------------------------------------------------------------------------------------
Otra manera:

palabra = "python"

longitud = len(palabra) > 4 # True
inicio = palabra.startswith('p') # True
contiene = palabra.count('y') >= 1 # True

correcto = all([longitud, inicio, contiene])
if correcto:
    print("todo ok")
else:
    print("algo no coincide")
------------------------------------------------------------------------------------------------
Desde ya gracias y un poco los extrañaba, slds, Daniel.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#2
Hola, Daniel.

No soy muy bueno con expresiones regulares, así que no podría ayudarte demasiado. Lo único que puedo decirte es que me parece más acertada tu solución que una con expresiones regulares, que seguramente será mucho menos legible. Con todo, si llegás a la expresión regular buscada, me gustaría verla. Smile

Saludos
Responder
#3
Hola Francisco ¿Cómo estas?.
Esto es lo que pude rescatar, si bien no es todo expresiones regulares esta bastante cerca.

---------------------------------------------------------------------------
  1. import re
  2.  
  3. palabra = "python"
  4.  
  5. if re.match('p\w{4}', palabra) and 'y' in palabra:
  6.     print('Todo Ok')
  7. else:
  8.     print('Algo no coincide')

\w es cualquier letra
{4} obliga a encontrar exactamente 4 letras (más la p inicial ya son cinco)
---------------------------------------------------------------------------

No se porque motivo me intrigan tanto las expresiones regulares es como un imán, pero x momentos pienso que con el código tradicional se puede lograr lo mismo y sin tantas complicaciones.
Te dejo un código que valida si la entrada en un número decimal, de coma flotante.

---------------------------------------------------------------------------
import re
   
numero_texto = input("\nIngrese un número...: ")
   
if re.match('[-+]?(? : (?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?$', numero_texto):
    numero = float(numero_texto)
    print(numero, type(numero))
else:
    print("Ingreso incorrecto")
---------------------------------------------------------------------------

Saludos y lo mejor para vos.
Daniel.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#4
¡Excelente, Daniel! Gracias por compartirlo.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)