Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Palabras, textos y vocabularios

5/24
Recursos

Aportes 14

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Definicion de metacaracter: Es una subcadena de texto que define un patron de busqueda muy basico. En el ejemplo tenemos:

re.search('es')

En donde nos trae todas las cadenas de texto que contengan en alguna parte la subcadena ‘es’.

En las expresiones regulares podemos tener busquedas al inicio o al final.
Al inicio seria

re.search('es$')

Al final quedaria como:

re.search('^es')

El rango como su nombre lo indica es una expresion regular que nos da como resultado las cadenas que tengan a inicio o final lo contenido en dicho rango. Ejemplo:

re.search('^[ghi]')

Clausura:
Existen 2 tipos:

  • El * indica que se puede repetir 0 ó mas veces.
  • El + indica que se puede repetir 1 ó mas veces.

La función re.search(p, s) tiene dos parámetros. En p introducimos la expresión que queremos buscar y en s la “lista” en la que queremos buscar la expresión p.

También se puede hacer uno de un filtro así:

import nltk
from re import match
import functools
import operator

nltk.download('cess_esp')
corpus = nltk.corpus.cess_esp.sents()
flatten = functools.reduce(operator.iconcat, corpus, [])

filtered_values = list(filter(lambda w: match('^[afc]', w), flatten))
filtered_values[:10]

Estructura de la función re.search()

Esta función determina si el patrón de la expresión regular aplica en una cadena de texto, re.searhc(p, s)

arr = [word for word in flatten if re.search('es',word)]
print(arr[:7])

Podemos ver que todos los elementos tienen dentro el texto es.🤯 Este es es un metacaracter que define un patrón de búsqueda muy básico. Podemos crear patrónes de busqueda mucho más complejos.

  • El caracter $ sirve para reemplazar cualquier caracter.
  • ^ sirve para indicar que está al inicio de la cadena de texto.
arr = [word for word in flatten if re.search('es$', word)]
print(arr[:5])

arr = [word for word in flatten if re.search('^es', word)]
print(arr[:5])

Ahora veremos que es el rango. La notación es [a-z], [ghi]. Cualquier letra en ese rango puede estar en dicho lugar

arr = [word for word in flatten if re.search('^[ghi]', word)]
print(arr[:7])

Por último, tenemos clausuras, y hay dos tipos:

  • *: Una cadena de texto se puede repetir 0 o más veces.
  • +: La cadena se puede repetir 1 o más veces.
arr = [word for word in flatten if re.search('^(no)+', word)]
print(arr[:10])

Este curso me gusta mucho es sobre python.
https://www.sololearn.com/learning/1073

Es FREE, en el ahi un modulo que es sobre expresiones regulares. Se los recomiendo.

Muy buena clase, si puedes tomar el curso de expresiones regulares del profesor Beco estos dos cursos seran una combinación potente en tu stack

Hola:
Pueden poner los patrones de texto para insertarlos en Google Colab y así poder practicar sin tener que escribirlos?. Me da un error cuando escribo las instrucciones

En algún momento encontré este simulador y me ayudó en el curso de Expresiones Regulares.

Buena explicación de expresiones regulares, lo básico, pero necesario para poder entenderlas.

Recordando el curso Autómatas y Lenguajes Formales.

Estructura de la funcion re.search()

Esta funcion determina si el patron de búsqueda p está contenido en la cadena s

re.search(p, s)

Búsquedas en cadenas de texto con meta caracteres básicos

# Buscamos el 'es' en la cadena w en donde este
arr  = [w for w in flatten if re.search('es', w)]
print(arr[:5])
# Buscamos el 'es' en la cadena w al final 
arr = [w for w in flatten if re.search('es$', w)]
print(arr[:5])
# Buscamos el 'es' en la cadena w al principio
arr = [w for w in flatten if re.search('^es', w)]
print(arr[:5])

Patrones de búsqueda usando el concepto de rango

Ejemplos:

  • Rango [a-z]: Determina que el carácter debe estar ubicado entra la a y la z
  • Rango [ghi]: Determina que el carácter que este en esta posición puede ser cualquier letra entre la g, h e i.
# Buscamos que al principio de tu cadena de texto debe de ser entre la g, h y la i
arr = [w for w in flatten if re.search('^[ghi]', w)]
print(arr[:10])

Clausuras

<h3>Tipos:</h3>
  • El *: Esta clausura representa que se puede repetir 0 o más veces.
  • El +: Esta clausura representa que s puede repetir 1 o más veces.
# El patron de busqueda será que al principio aparezca no y que esa secuencia se puede repetir 0 o más veces 
arr1 = [w for w in flatten if re.search('^(no)*', w)]
print(arr1[:20])

# El patron de busqueda será que la sub cadena de texto no debe de aparecer al menos una vez
arr2 = [w for w in flatten if re.search('^(no)+', w)]
print(arr2[:20])

No entiendo porque Francisco dice “0 o mas veces”. Si es cero no hay mas veces.
Alguien tiene una explicación de porque utiliza esa expresión.
Gracias