0% encontró este documento útil (0 votos)
95 vistas33 páginas

07 Patrones Regex 01

Este documento presenta el temario de una clase sobre expresiones regulares. La clase cubrirá crear expresiones regulares sencillas usando signos y estructuras definidas, y practicar con herramientas como grep y sed. También discutirá convertir números entre sistemas decimales, hexadecimales y binarios.

Cargado por

pineiden
Derechos de autor
© Attribution Non-Commercial ShareAlike (BY-NC-SA)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas33 páginas

07 Patrones Regex 01

Este documento presenta el temario de una clase sobre expresiones regulares. La clase cubrirá crear expresiones regulares sencillas usando signos y estructuras definidas, y practicar con herramientas como grep y sed. También discutirá convertir números entre sistemas decimales, hexadecimales y binarios.

Cargado por

pineiden
Derechos de autor
© Attribution Non-Commercial ShareAlike (BY-NC-SA)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 33

Primeras

lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
Primeras lecciones de Expresiones Regulares
inicio de clases

Una definición
sencilla

Decimal, David Pineda Osorio


hexadecimal y
binario

Necesario
conocer esto:
tablas ASCII
8 de octubre de 2019
Volviendo a
las regex

Referencias
Outline

Primeras
lecciones de
Expresiones
Regulares
1 Temario de la clase
David Pineda
Osorio

Temario de la
2 Registrar inicio de clases
clase

Registrar
inicio de clases
3 Una definición sencilla
Una definición
sencilla

Decimal,
4 Decimal, hexadecimal y binario
hexadecimal y
binario

Necesario 5 Necesario conocer esto: tablas ASCII


conocer esto:
tablas ASCII

Volviendo a
las regex
6 Volviendo a las regex
Referencias
7 Referencias
¿Qué veremos en esta clase?

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar Crear expresiones regulares sencillas mediante el uso comprensivo de


inicio de clases
los signos y estructuras definidas para las regex.
Una definición
sencilla
Practicar con grep y sed logrando identificar los usos claves de cada
Decimal,
hexadecimal y herramienta ya conocida.
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Una marca en la línea de comandos: con nombre de
clase
Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la Para poder realizar una búsqueda que tenga un mayor contexto y
clase
precisión, es posible añadir más texto a la seña que nos permita
Registrar
inicio de clases mejorar la referencia.
Una definición Recomiendo añadir, al número de la clase, la seña relacionada al
sencilla

Decimal,
nombre de la clase, que en este ca22174so sería regex_01.
hexadecimal y
binario echo "CLASE_07::regex_01"
Necesario
conocer esto: Anota en tu cuaderno la fecha y la seña CLASE_07::regex_01
tablas ASCII

Volviendo a
las regex

Referencias
Trabajar con textos

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
Para trabajar con textos o cadenas de textos, en algún momento te
inicio de clases encontrarás con la necesidad de utilizar estas expresiones regulares
Una definición
sencilla
que permitirán potenciar las búsquedas, la edición de textos, la
Decimal, comparación con otros textos, encontrar patrones definidos genéricos,
hexadecimal y
binario etc.
Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
¿Qúe podemos buscar o patrones a reconocer?

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
Es una forma expresiva de generalizar búsqueda y reconocimiento de
clase patrones, es decir, por ejemplo:
Registrar
inicio de clases Si necesito buscar todas las palabras que comiencen con la letra
Una definición
sencilla
d
Decimal, Si necesito buscar cadenas de texto con números
hexadecimal y
binario
Si necesito encontrar palabras de largo 5
Necesario
conocer esto:
tablas ASCII
etcétera
Volviendo a
las regex

Referencias
Lo más básico a entender

Primeras
lecciones de
Las regex se basan en agrupar las posibilidades que pueda tener una
Expresiones
Regulares
cadena de texto posicionalmente. Es decir, cada caracter tiene una
posición y si este pertenece a la expresión en la posición
David Pineda
Osorio correspondiente se avanza en la verificación del siguiente.
Temario de la
clase

Registrar
inicio de clases

Una definición
sencilla

Decimal,
hexadecimal y
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Un ejercicio sobre la primera regex

Primeras
lecciones de
Expresiones
Regulares Pertenecerán estas palabras al conjunto que describe la regex
David Pineda
Osorio [amp][ab][mpu][áe]l[oa]
Temario de la
clase Pregunta, ¿está completa la expresión? ¿Qué le faltaría?
Registrar
inicio de clases martirio
Una definición
sencilla madre
Decimal,
hexadecimal y papá
binario

Necesario
mamá
conocer esto:
tablas ASCII josefina
Volviendo a
las regex
abuelando
Referencias abuelita
abuela
Cómo se almacena la información

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
Toda la información que maneja un computador se alamacena y
Temario de la comunica de manera binaria {0,1}, expresamente un conjunto de
clase
ellos. En el caso de cada caracter, como a o z o lo que sea, son la
Registrar
inicio de clases representación gráfica de un valor binario.
Una definición
sencilla
Ahora bien, con el fin de mejorar el despliegue de información un
Decimal,
conjunto de valores binarios puede ser representado también como un
hexadecimal y
binario
hexadecimal.
Necesario Hexadecimal es una forma de expresión numérica para contar en
conocer esto:
tablas ASCII ciclos de 16 valores {0,1,. . . 15}. Que se representan según la tabla
Volviendo a siguiente
las regex

Referencias
Representación hexadecimal

Primeras
lecciones de Decimal Hexadecimal Binario
Expresiones
Regulares 0 0 0000
David Pineda 1 1 0001
Osorio
2 2 0010
Temario de la
clase
3 3 0011
Registrar
4 4 0100
inicio de clases
5 5 0101
Una definición
sencilla 6 6 0110
Decimal, 7 7 0111
hexadecimal y
binario 8 8 1000
Necesario 9 9 1001
conocer esto:
tablas ASCII 10 A 1010
Volviendo a
las regex
11 B 1011
Referencias
12 C 1100
13 D 1101
14 E 1110
15 F 1111
Conversiones numéricas de base

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la Usaremos el comando bc, que permite realizar operaciones


clase
matemáticas y, también, convertir números desde distintas bases. Es,
Registrar
inicio de clases además, un completo lenguaje que se puede usar para el cálculo
Una definición matemático.
sencilla

Decimal,
Si deseamos convertir un número definido en una base decimal (100)
hexadecimal y
binario
a un binario, podemos realizar lo siguiente.
Necesario
conocer esto:
echo "ibase=A;obase=2;100" | bc
tablas ASCII

Volviendo a
las regex

Referencias
Conocer más de bc

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
La letra A quiere decir que es base decimal. El parámetro de ibase y
clase
de obase se definen en función de los números hexadecimales.
Registrar
inicio de clases Además
Una definición
sencilla ibase quiere decir base input
Decimal,
hexadecimal y
obase quiere decir base output
binario

Necesario
Por lo tanto, desde un número binario 11001110 necesitamos que
conocer esto:
tablas ASCII
ibase=2, y la salida como hexadecimal, obase=F+1.
Volviendo a
las regex

Referencias
Convertir los siguientes números

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
Los siguientes números a las otras dos bases (si es decimal, a
hexadecimal y binario)
Temario de la
clase
10 (decimal)
Registrar
inicio de clases 0101011101 (binario)
Una definición
sencilla 64 (hexadecimal)
Decimal,
hexadecimal y 386 (decimal)
binario

Necesario
4555 (hexadecimal)
conocer esto:
tablas ASCII 111 (binario)
Volviendo a
las regex 11111111 (binario)
Referencias
Crear una tabla de conversión

Primeras
lecciones de
Expresiones
Regulares

David Pineda
De la siguiente manera, para completar el cambio de cada número, se
Osorio siguiere realizar en el cuaderno una tabla similar.
Temario de la
clase A F+1 2
Registrar
inicio de clases
Decimal Hexadecimal Binario
Una definición 10
sencilla
0101011101
Decimal,
hexadecimal y 64
binario
386
Necesario
conocer esto: 455
tablas ASCII

Volviendo a
111
las regex 11111111
Referencias
El texto es la representación de un valor binario

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase
Son las tablas que relacionan un número, con un valor hexadecimal y
Registrar
un carácter humanamente legible. Es un estándar occidental cuyo
inicio de clases
acrónimo es ASCII
Una definición
sencilla Utiliza 7 bits (128 posibilidades) y uno de paridad. Nos permite
Decimal, decirle al computador que una letra (o carácter) se está ocupando, el
hexadecimal y
binario computador toma esta señal y la traduce a un valor binario en byte.
Necesario Los primeros 32 valores representan carácteres de control
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Valores de las letras del alfabeto

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase
decimal hexadecimal caracter
Registrar
inicio de clases 65d 41h A
Una definición
sencilla
90d 5Ah Z
Decimal,
97d 61h a
hexadecimal y
binario
122d 7Ah z
Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Valores numéricos

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
inicio de clases decimal hexadecimal caracter
Una definición 48d 30h 0
sencilla
57d 39h 9
Decimal,
hexadecimal y
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Caracteres de uso común

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
decimal hexadecimal caracter
Temario de la
clase 64d 40h @
Registrar 123d 7Bh {
inicio de clases
124d 7Ch
Una definición
sencilla 125d 7Dh }
Decimal,
hexadecimal y
91d 5Bh [
binario 92d 5Ch /
Necesario
conocer esto:
93d 5Dh ]
tablas ASCII
36d 25h $
Volviendo a
las regex

Referencias
Ejercicios de números a ASCII

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
¿Qué letras o caracter serían los siguientes valores?

Temario de la
"33"
clase
"66"
Registrar
inicio de clases
"89"
Una definición
sencilla "12"
Decimal,
hexadecimal y "24"
binario

Necesario ¿Qué valores decimales y hexadecimales tendrá cada caracter del


conocer esto:
tablas ASCII siguiente conjunto?
Volviendo a
las regex $,%,&,´,¨,*,7,{,},+,¨.^, b, r,t,W,U,Z,Ñ,ñ,W
Referencias
Uso de xxd o hexdump

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
inicio de clases Considera el uso de la expresión
Una definición
sencilla echo "Q"|xxd
Decimal,
hexadecimal y
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Un archivo en binario o hexadecimal

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la De manera análoga, es posible visualizar el contenido de un archivo


clase
de texto de manera binaria o también en valores hexadecimales.
Registrar
inicio de clases Tomando el archivo ./ejercicios/prueba_hex_bin.txt
Una definición
sencilla #ver en binario
Decimal, xxd -b prueba_hex_bin.txt
hexadecimal y
binario
Luego, hacer lo mismo sobre el archivo (que es más extenso)
Necesario
conocer esto: ./ejercicios/sobre_peliculas/art_kurosawa.txt
tablas ASCII

Volviendo a
las regex

Referencias
Tabla de regex generales

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la Cuadro: regex generales


clase

Registrar
inicio de clases
regex descripción
Una definición
d Búsqueda de un carácter que es dígito del 0 a 9
sencilla
w Carácter de palabra, número, letra
Decimal,
hexadecimal y s Espacio
binario
D Un carácter que NO es dígito
Necesario
conocer esto: S Un carácter que no es espacio
tablas ASCII
W Un carácter que no es carácter de palabra
Volviendo a
las regex

Referencias
Números en archivos

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Buscar líneas con algún número, activando la opción de grep perl


Temario de la
clase regex
Registrar
inicio de clases grep -P "\d" numeros.txt
Una definición
sencilla
grep -P "\d" sobre_peliculas/art_kurosawa.txt
Decimal,
hexadecimal y
También, una coincidencia desde el stream
binario

Necesario
echo "Estabamos solos en la habitación"|grep -P "\d"
conocer esto:
tablas ASCII
echo "101 dálmatas"|grep -P "\d"
Volviendo a
las regex

Referencias
Líneas sin números

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
Para encontrar aquellas líneas que contienen al menos un caracter no
Temario de la
clase
numérico. Es decir, pueden tener números, pero si tienen otra cosa,
Registrar
aparece en la coincidencia.
inicio de clases

Una definición
grep -P "\D" numeros.txt
sencilla grep -P "\D" textos.txt
Decimal,
hexadecimal y
binario
También, una coincidencia desde el stream
Necesario
conocer esto:
echo "Estabamos solos en la habitación"|grep -P "\D"
tablas ASCII
echo "101 dálmatas"|grep -P "\D"
Volviendo a
las regex

Referencias
Tabla de cuantificadores

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la Cuadro: Cuantificadores de Regex


clase

Registrar
inicio de clases
Cuantificador Descripción
Una definición
+ Uno o nada
sencilla
? Puede que exista o no
Decimal,
hexadecimal y {N} N veces
binario
{N,M} N o M veces
Necesario
conocer esto: {N,} N o más veces
tablas ASCII
"*" Cero o más veces
Volviendo a
las regex

Referencias
N veces un número

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
Solo mostrar aquellas filas que contengan 4 números consecutivos
inicio de clases

Una definición
grep -P "\d{4}" numeros.txt
sencilla grep -P "\d{4}" sobre_peliculas/art_kurosawa.txt
Decimal,
hexadecimal y
grep -P "\d{4}" textos.txt
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Listar los archivos con extensión txt

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
inicio de clases
Ya siendo conocido, la expresión *.txt significa que puede haber una
Una definición
cantidad indefinida de caracteres y luego terminar con .txt.
sencilla

Decimal,
ls *.txt
hexadecimal y
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Que una coincidencia de un caracter pueda existir o
no.
Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase El uso de ? permite expresar que esa coincidencia no es estrictamente
Registrar
inicio de clases
necesaria.
Una definición
sencilla
echo "busto"|grep "bustos?"
Decimal, echo "¿Qué dices?"|grep "¿?Qué dices\?"
hexadecimal y
binario echo "Qué dices?"|grep "¿?Qué dices\?"
Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Tabla de signos agrupadores

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
Cuadro: Lógica en regex
Temario de la
clase

Registrar
inicio de clases
Expresión Descripción
Una definición "[AE]" Busca A o E en una palabra
sencilla
"[Aa]" Busca A o a dentro de texto
Decimal,
hexadecimal y "[a-b]" Busca en un rango entre valores a y b
binario
"[x-y]" Un carácter entre x a y
Necesario
conocer esto: "[AB1-4x-z]" Combinación que busca A,B, de 1 a 4, de x a z
tablas ASCII

Volviendo a
"[ˆx]" Un carácter que no está en la búsqueda
las regex "[(slash)xNRO]" Buscar caracter con ese valor hexadecimal
Referencias
Tabla de anclas y límites

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase

Registrar
inicio de clases Cuadro: Anclas y Límites
Una definición
sencilla
"ˆ" Comienza línea con carácter buscado "ˆA"
Decimal,
hexadecimal y "$" Finaliza línea con carácter buscado .a$"
binario

Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Buscar con flexibilidad

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Temario de la
clase Buscar las líneas que comienzan con mayúsculas en el artículo sobre
Registrar Kurosawa, lo que indicaría (muy posiblemente) inicio de párrafo.
inicio de clases

Una definición grep -P "^[A-Z]" sobre_peliculas/art_kurosawa.txt


sencilla

Decimal, O bien, mostrar solo aquellas líneas con letras minúsculas.


hexadecimal y
binario
grep -P "^[a-z]" prueba_hex_bin.txt
Necesario
conocer esto:
tablas ASCII

Volviendo a
las regex

Referencias
Buscar aquellas líneas que con números

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio

Que comienzan con


Temario de la
clase
grep -P "^\d" prueba_hex_bin.txt
Registrar
inicio de clases
En toda la línea tienen números enteros
Una definición
sencilla

Decimal,
grep -P "^\d*$" numeros.txt
hexadecimal y
binario Aquella que tienen decimales (solo en el caso de este archivo).
Necesario
conocer esto: grep -v -P "^\d*$" numeros.txt
tablas ASCII

Volviendo a
las regex

Referencias
Libros para profundizar

Primeras
lecciones de
Expresiones
Regulares

David Pineda
Osorio
Base teórica (Sipser) Introduction to the Theory of Computation,
Temario de la
clase Michael Sipser
Registrar
inicio de clases
Libro recomendado (básico) Begining Regular Expressions, Watt A.
Una definición
sencilla
Libro recomendado (experto) Mastering Regular Expressions, 3rd
Decimal,
Edition.
hexadecimal y
binario Aprender practicando www.regexone.com
Necesario
conocer esto: Probador regex https://es.infobyip.com/
tablas ASCII
regularexpressioncalculator.php
Volviendo a
las regex

Referencias

También podría gustarte