es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Condición en Python con letras en un orden específico.

Estoy tratando de encontrar palabras en un corpus que tengan letras (específicamente aeiouy) que aparezcan en las palabras en ese orden (como “facetiously”). Tengo el siguiente código hasta ahora, pero estoy luchando por cómo hacer que tenga la condición de que deben estar en el siguiente orden.

english = nltk.corpus.words.words()
words = [w for w in english if re.search(r'[aeiouy]',w)]

¿Hay alguna manera fácil de hacer esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de buscar palabras en un corpus que tengan vocales (aeiouy) en un orden específico usando expresiones regulares en python. Aquí está el código modificado que se puede usar:

    import re
    import nltk
    
    english = nltk.corpus.words.words()
    words = [word for word in english if re.search(r'[a|e|i|o|u]+.*[a|e|i|o|u]+.*[a|e|i|o|u]+.*[a|e|i|o|u]+.*[a|e|i|o|u]+', word.lower())] 
    

    Este código utiliza expresiones regulares para buscar palabras que tengan vocales en el orden aeiouy. La expresión regular busca cualquier secuencia de vocales, seguida de cualquier secuencia de caracteres (representada por .*), y luego busca otra secuencia de vocales, seguida de otra secuencia de caracteres, y así sucesivamente.

    Tenga en cuenta que el código modificado convierte todas las palabras a minúsculas antes de verificarlas para el patrón. Esto se debe a que las expresiones regulares son sensibles a mayúsculas y minúsculas por defecto, y queremos capturar palabras independientemente de su caso.

Comments are closed.