• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Truco Python: identificar diptongos o triptongos en una cadena de texto en Python

enero 31, 2020 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 2 minutos

Recientemente me han planteado cómo identificar triptongos en cadena de texto dentro de los elementos de una lista en Python. Siendo esta una tarea que se puede realizar fácilmente recurriendo a las expresiones regulares. Una herramienta tan poderosa y muchas veces olvidadas.

Buscar un grupo de caracteres en una cadena de texto

Para buscar un grupo de caracteres en una cadena de texto mediante expresiones regulares simplemente se tiene encerrar los válidos entre corchetes. Así para buscar las vocales solamente se tiene que escribir “[AEIOUaeiou]” o “[aeiou]” si se ignorar la diferencia entre mayúsculas y minúsculas.

Si queremos buscar tres vocales seguidas no hay más que concatenar tres “[aeiou][aeiou][aeiou]” y comprobar con una expresión regular si existe esta combinación.

re.search("[aeiou][aeiou][aeiou]", texto, re.IGNORECASE)

Observando que se ha usado la opción re.IGNORECASE para indicar que no se debe diferenciar entre mayúsculas o minúsculas. Así para identificar diptongos o triptongos en una cadena de texto en Python se puede definir la siguiente función:

import re

def multiple_string(list_, num=3):
    regex = num * "[aeiou]"
    
    for text in list_:
        if re.search(regex, text, re.IGNORECASE):
            print(text)
            
multiple_string(['hola', 'antiautoritario', 'vieira', 'colores', 'GUAU'], 3)
antiautoritario
vieira
GUAU

En la que se ha definido como parámetros de entrada la lista y el número de caracteres que se desean buscar.

Tutorial de Mypy para Principiantes
En Analytics Lane
Tutorial de Mypy para Principiantes

Al ejecutar el ejemplo se obtiene como resultado las palabras de la lista que contiene tres vocales consecutivas. Siendo esto lo que se buscaba inicialmente.

Publicidad


Usando programación funcional

En este caso se puede simplificar el código si se utiliza programación funcional. Por ejemplo, se puede filtrar la lista con:

def multiple_string(list_, num=3):
    regex = num * "[aeiou]"
    return list(filter(lambda text: re.search(regex, text, re.IGNORECASE), list_))
            
multiple_string(['hola', 'antiautoritario', 'vieira', 'colores', 'GUAU'], 3)
['antiautoritario', 'vieira', 'GUAU']

Conclusiones

En esta entrada se ha visto la utilidad de las expresiones regulares para identificar patrones en cadenas de texto. Una tarea que es bastante habitual. Además se ha visto como la programación funcional permite hacer código más sencillo de leer y comprender.

Imágenes: Pixabay (Theodor Moise )

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 1

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Tutorial de Mypy para Principiantes
  • Semana sin nuevas publicaciones
  • Combinar gráficos con FacetGrid: Cómo analizar tendencias complejas en múltiples paneles con Seaborn
  • Introducción a igraph en R (Parte 6): Centralidad de Katz en grafos
  • Cómo modificar los mensajes de commit en Git
  • Optimización de memoria en Pandas: Usar tipos de datos personalizados para manejar grandes conjuntos de datos
  • Introducción a igraph en R (Parte 7): Centralidad de Bonacich
  • ¡Analytics Lane cumple siete años!
  • Sincronizar múltiples ejes con twinx(): Comparación de datos con diferentes escalas en un solo gráfico con Matplotlib

Publicado en: Python Etiquetado como: Truco

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Variables globales en Python: Problemas y cómo evitarlos

mayo 12, 2025 Por Daniel Rodríguez

Los valores numéricos en los ordenadores: Entendiendo enteros, flotantes y más

mayo 9, 2025 Por Daniel Rodríguez

Introducción a igraph en R (Parte 8): PageRank

mayo 7, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Procesadores cuánticos en Machine Learning e Inteligencia Artificial Procesadores cuánticos en Machine Learning e Inteligencia Artificial: Transformando el futuro de la tecnología publicado el febrero 12, 2025 | en Ciencia de datos, Criptografía, Opinión
  • pandas Pandas: Cómo iterar sobre las filas de un DataFrame en Pandas publicado el septiembre 13, 2021 | en Python
  • Solución a ‘IndentationError: unexpected indent’ en Python paso a paso publicado el marzo 24, 2025 | en Python
  • ¿Qué significa if __name__ == “__main__”: en Python? publicado el noviembre 29, 2021 | en Python
  • Selección del valor óptimo de K en SelecKBest de scikit-learn publicado el febrero 23, 2024 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes
  • javier en Problemas con listas mutables en Python: Cómo evitar efectos inesperados
  • soldado en Numpy básico: encontrar la posición de un elemento en un Array de Numpy
  • plataformas AéReas en Numpy básico: encontrar la posición de un elemento en un Array de Numpy

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto