Crea una cuenta o inicia sesión

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

Curso de Expresiones Regulares

Curso de Expresiones Regulares

Alberto Alcocer (Beco)

Alberto Alcocer (Beco)

El caracter (.)

5/29
Recursos

¿Qué es un archivo de texto, por ejemplo un CSV?
¿Qué es una cadena de caracteres?

Cada espacio en una cadena de texto se llena con un caracter, esto lo necesitamos tener perfectamente claro para comenzar a trabajar con expresiones regulares

Abriremos nuestro editor, qué en este curso recomendamos ATOM, vamos a presionar CTRL + F y podremos buscar por match idénticos.

Aportes 119

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Con Visual Studio Code también se puede filtrar y remplazar. Presionamos CTRL + F como en Atom y nos aparecerá lo siguiente:


Mis Apuntes:

El caracter (.)

Archivo de texto. Serie de cadenas de caracteres. Una sucesión de líneas.

Cadena de caracteres. Un carácter seguido de otro carácter, seguido de otro carácter.

Caracter. Representación gráfica en bits de algún código, en mayor de los casos ASCII. Es la unidad mínima que se puede abstraer de una cadena de caracteres.

para quienes tengan isntalado Visual Code este teben busca por expresiones regulares…
cuando se da ctrl + f en seguida en el recuadro se encuentra un cuadro y un * elevado esa es la busqueda por expresion regular

Estas fueron mis notas de la clase:

Punto (.) Encuentra todo lo que sea un carácter.
Punto + espacio (. ) Encuentra todos los caracteres que tengan un espacio subsecuente.
**Puntos consecutivos (………….) **Resalta el número de caracteres de acuerdo al número de puntos especificados.

NOTA: Dado el último ejemplo de puntos consecutivos donde el programa (en este caso Atom) resalta los caracteres contenidos en cada línea en grupos de acuerdo al número de puntos especificados; he podido inferir que la razón por la cual cuando colocamos un único punto se resaltan todos los caracteres (primer ejemplo del uso del punto) es que, Atom resalta en grupos de uno el conjunto de caracteres de cada línea. Lo que nos da un idea de la lógica que se aplica en el uso de los puntos.

Quería seguir el curso de JavaScript y no se como termine aquí, pero esta muy interesante e útil.

Un Caracter, es un Caracter
-Alberto 2019 xD

Siempre he usado la página Debuggex para construir mis expresiones regulares.
Es una ayuda visual y para testear las expresiones regulares.

"Si buscas a lo idiota, encontrarás cualquier cosa"
Me gusta la forma de enseñar de este profe.

Quien no tuviera Atom esta página sirve muy bien para practicar: https://regex101.com/

Link para descargar el editor de texto Atom : https://atom.io/
la instalación es practicamente automatica y super sencilla de usar.

Me gustan las clases de este profe, no es para nada jodido de entender! Se le aprecia mucho Sr. Alberto!!

Quién no le guste el editor de texto Atom, pueden utilizar **SublimeText, **con los atajos ALT+H (Replace) o ALT+F (Find) nos ayuda a buscar, agregado a eso el atajo ALT+R(Regular Expression) podemos aplicar el carácter (.) para poder aplicarlo visto en el video.

El caracter (.)
Cada espacio es un carácter.
Una línea, una oración, una palabra, son una sucesión de caracteres.
Búsqueda y reemplazo, usar ctrl + F (find).
Code tiene su búsqueda de expresiones regulares. Utiliza la opción de búsqueda y en el recuadro de la búsqueda darle clic al cuadro y al asterisco. ¿Quieres reemplazar? Dale clic a la flecha al lado del recuadro “buscar”.
Buscar cualquier carácter seguido por un espacio, usar ". ".
¿Quieres hacerlo más complejo? Prueba agregando letras, para que veas qué es lo que se selecciona.
¿Cómo encontrar 10 caracteres juntos? “…” 10 puntos seguidos.
Es importante saber ver. ¿Qué es lo que quieres buscar? Hay que profundizar.

Este es el tipo de instructor que me encanta … jajajajaja

Tablas con expresiones regulares básicas

Es recomendable imprimir las tablas para que tenga una hoja de trucos cerca y una referencia rápida.
https://www.rexegg.com/regex-quickstart.html

Algo útil que pueden hacer es usar texto falso para practicar las expresiones regulares. Aquí les dejo un poco:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.
Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.
Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.
In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.
Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.
Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.
Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi.
Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus.
Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt.
Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna.

basado en el fichero de los recursos liners.txt solo las 8 primeras lienas y añadido dos lineas de texto nuevas

1
12
123
1234
12345
12345678910
12345678910a
13453243
hola tambien
palabra

¿El (.) no busca saltos de línea?

Spoiler para saber como encontrar numero de teléfono. Yo en lo personal lo hago en la consola con el comando grep de la siguiente manera:

grep -n '..-..-..-..' file.txt

Eso es todo

🔎 Find and replace en Visual Studio: Ctrl + H

  • El punto ( . ) devuelve cualquier caracter.
  • Tres puntos ( … ) devuelve dos caracteres cualesquiera.
  • Y así sucesivamente.

Comparto mis apuntes y el ejemplo de que busca de 3 en 3:

Que no se desboque el caballo !!

Para está clase hubiese sido chevere que lo explicara en https://regex101.com/ que es mas visible lo que dice en el minuto 4:20. sin embargo, estuvo genial la explicación.

Cada espacio en una cadena de texto se llena con un caracter, esto lo necesitamos tener perfectamente claro para comenzar a trabajar con expresiones regulares

Abriremos nuestro editor qué en este curso recomendamos ATOM y vamos a presionar CTRL + F y podemos buscar por match idénticos.

Para Mac hay una app quie se llama Espressions que funciona muy bien

Interesante… Vamos a probar con VS Code

"...Hagamos esto en modo turbo" Y alli fue cuando le dimos duro a las expresiones regulares :D

interesantisimo!

Genial

Es interesante que los caracteres en expresiones regulares tengan diferente seleccion. Al final, todo depende de cada usuario en usar su editor de texto para aprender de expresiones regulares. Yo me voy por el VSCode.

Este curso vale oro para un programador.

Maldición! No se dice caractér. Se dice carácter (con acento en la primera a).

Más allá de eso, el curso es muy bueno.

El caracter .

En las expresiones regulares (RegEx), el punto (.) es un metacaracter especial que tiene un significado específico: coincide con cualquier carácter, excepto un salto de línea. En otras palabras, el punto se utiliza para representar cualquier carácter individual en una cadena de texto, sin importar si es una letra, un número, un símbolo o un espacio en blanco, excepto el carácter de nueva línea.

Aquí hay algunos ejemplos de cómo se puede utilizar el punto en expresiones regulares:

  • La expresión regular c.t coincidiría con cadenas como “cat” (gato), “cut” (corte), “cot” (bermudas), ya que el punto se corresponde con cualquier carácter único en el lugar del punto.

  • Si usamos la expresión regular h.t, coincidiría con “hat” (sombrero), “hot” (caliente), “hit” (golpe), pero no coincidiría con “heat” (calor) porque el punto solo coincide con un único carácter.

  • Si tienes la expresión regular a.b, coincidiría con “aab” o “a#b”, ya que el punto coincide con cualquier carácter individual.

Sin embargo, es importante tener en cuenta que el punto no coincidirá con los caracteres de nueva línea, por lo que no funcionaría para buscar patrones que se extiendan a través de múltiples líneas de texto.

En resumen, el punto (.) en expresiones regulares es un comodín que coincide con cualquier carácter excepto los saltos de línea, lo que lo convierte en una herramienta útil para buscar patrones en lugares donde se espera cualquier tipo de carácter.

El enter (\n) no es tomado también como un carácter?

No tenia idea de la existencia de estas ayudas en los editores.
Genial!!

Wenisimo el contenido

Siempre enfatizando “un caracter es un caracter”

Supongo que inicia a buscar 10 caracteres juntos al inicio de la linea por la ambigüedad de la instrucción ya que en la linea 7 también podrían ser 10 caracteres juntos los siguientes : “345678910a”.

Hay dos extensiones de Visual Studio Code que me parecieron muy buenos para esto:

  1. Regex Previewer
  2. RegExp Preview and Editor

Son muy graciosos los comentarios que a veces tira @Beco jajaja

Voy a buscar todos esos caracteres invisibles. Me pueden servir para criptografía

Excelente

La expresión . selecciona cada carácter, es decir, carácter a carácter.

Cual NO sería un carácter? esté por ejemplo : ��?

Archivos - > sucesión de caracteres
. <- punto denota cualquier carácter

Comparto un codigo en java
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package strings;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
*

  • @author Sem-6-INGENIERIAINDU
    */
    public class Strings {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      String mensaje = “Hola como te encuentras”;
      Pattern pattern = Pattern.compile(".");
      Matcher matcher = pattern.matcher(mensaje);
      System.out.println(matcher.find());

    }

}

Al usar el caracter . (punto) en una búsqueda con expresiones regulares, te localiza todos los caracteres en un archivo.

Clarísimo todo.

1-El carácter (.) El punto denota cualquier carácter. Sean dígitos, letras, símbolos, etc.

En VS Code se accede con Ctrl + F, pero en Windows si están usando la terminal integrada de WSL no funciona, debe de ser Power Shell. Y para desplegar el Replace solo le damos en la flecha.

¿Qué es un carácter?


En terminología informática y de telecomunicaciones, un carácter es una unidad de información que corresponde aproximadamente con un grafema o con una unidad o símbolo parecido, como los de un alfabeto o silabario de la forma escrita de un lenguaje natural.

Un ejemplo de carácter es una letra, un número o un signo de puntuación. El concepto también abarca a los caracteres de control, que no se corresponden con símbolos del lenguaje natural sino con otros fragmentos de información usados para procesar textos, tales como el retorno de carro y el tabulador, así como instrucciones para impresoras y otros dispositivos que muestran dichos textos (como el avance de página).

voy a usar ese caracter para que me encuentre una novia que sad

Las Cadenas de caracteres o strings: son caracteres de codigo ascii o unicode seguidos entre sí, uno detrás del otro.

Trabajando con expresiones regulares en esta clase usamos el punto (.) : este selecciona todos los caracteres que le indiquemos, se puede decir que es la representación de cualquier caracter. Ejemplo: **. … ** en este ejemplo buscará una cadena con 1 caracter 1 espacio y una sucessión de 3 caracteres.

El punto “.” denota “Cualquier carácter”. ¡Cuidado, esto incluye los espacios!

caracter = caracter

también se puede decir tautología

Pueden usar esta herramienta online… Se llama regex101 Link de Acceso

Estoy volviendo a este curso que nunca termine, no por el certificado sino porque realmente ahora estoy haciendo mis proyectos en los que puedo implementarlas y no las recuerdo bien.
Modo haciendo apuntes ON

Jugando con el punto
https://regexr.com/6acbl

Patrón

\b.\b|\b.{2}\b|\b.{3,5}\b|\b.{11}a\b|1.*3\b

Texto

1
12
123
1234
12345
12345678910
12345678910a
13453243
hola tambien
palabra

Match (resultados encontrados)

1
12
123
1234
12345
12345678910a
13453243
hola 

Regex One

Les dejo un enlace en el cual podemos aprender Regex de manera interactiva.

“Si empezamos a buscar caracteres a lo idiota” jajajajajajaj

En las expresiones regulares, el punto (.) representa a cualquier caracter posible a excepción de un salto de línea (\n)
Ejemplos:

\...\ -> Representa, busca y selecciona tres caracteres seguidos, cualesquiera
\.\ -> Representa, busca y selecciona un solo caracter cualquiera.
\..........\ -> Representa diez caracteres -seguidos- cualesquiera

Este es super útil para ver las RegExp 💜

si quieres realizarlos de una CLI puedes realizarlo de la siguiente forma

grep ^.. liners.txt

El punto es un caballo que se nos puede desbocar muy facilmente. Tener cuidado!

En esta pagina pueden encontrar mucha información y herramientas rexegg

Muy buena explicación.

el punto representa cualquier caracter, un espacio TAMBIEN ES UN CARACTER.

Importante, no debemos usar el punto para buscar coincidencias a lo idiota jajajjaja.

En mi caso use visual studio code para el curso pero en ocasiones no me detectaba las expresiones regulares y no es tan visible la agrupación de los matchs, así que use una herramienta que compartieron a lo largo del curso donde borras el texto que trae por default y pegas el texto que quieres validar y arriba colocas tus expresiones regulares, espero te sirva.
Nota:
En algunos casos no me hacia match algunas expresiones regulares en la pagina y en visual code si y viceversa.

https://regexr.com/

import re

#print(re.findall(r'1', text.readlines()[5])

with open('./REGEX-master/liners.txt') as texto:
    text = list(texto)

    for i in range(len(text)):
        line = re.findall('.', text[i])
        print(i, ''.join(line), text[i])

Claro que verlo así es solo para comprender lo que pasa, porque en un archivo grande no podrás verlo en la pantalla.
La línea comentada se comporta como un iterador para archivos de verdad, solo que no he conseguido iteralo.

Pleonasmo : Figura retórica de construcción que consiste en añadir enfáticamente a una frase más palabras de la necesarias para su comprensión con el fin de embellecer o añadir expresividad a lo que se dice.
"‘lo he visto con mis propios ojos’ o ‘subir arriba’ son pleonasmos corrientes"

No buscaba esa palabra pero ahora la necesito 😄

En JMeter se usa , y nunca entendia . Hoy ya me di cuenta porque se usa y que puede significar
super mega genial el curso

Mis apuntes. El punto es potente. Es un caballo que se nos puede desbocar muy facil y tenemos que tener cuidado porque si empezmos a buscar caracteres a lo idiota simepre vamos a encontrar algo jajaja es el mejor.

Aporte


Como aporte, si yo tengo una serie de puntos sucesivos, por ejemplo 3 puntos, esta exp regular agrupara por 3 caracteres cada Cada que le demos de input.

Si en Visual Studio Code apretas Ctrl+H puedes hacer un “Buscar y Reemplazar” practicamente igual que en Atom. Por si no quieren instalar Atom para hacer este curso, VS Code funciona más que bien.

El carácter . (punto) en una expresión regular es un carácter comodín que coincide con cualquier carácter excepto con \n

El carácter \*\*`.`\*\* (punto) en expresiones regulares es un \*\*comodín\*\* que representa \*\*cualquier carácter\*\*, excepto una nueva línea (`\n`). \### Ejemplos de uso: 1\. \*\*Coincide con cualquier carácter simple:\*\* \- Expresión regular: `a.b` \- Coincide con: \- `aab` \- `acb` \- `a5b` \- No coincide con: \- `ab` (falta un carácter entre `a` y `b`) \- `a\nb` (porque no coincide con una nueva línea) 2\. \*\*Combinar el `.` con otros patrones:\*\* \- Expresión regular: `..` \- Coincide con cualquier secuencia de \*\*dos caracteres\*\*. \- Por ejemplo, coincide con `aa`, `b2`, `@#`, etc. \### Uso avanzado: Para hacer que el punto \*\*literal\*\* (es decir, que represente un punto en lugar de "cualquier carácter"), debe escaparse con una barra invertida (`\\.`). \- \*\*Ejemplo\*\*: `a\\.b` coincide con `a.b` pero \*\*no\*\* con `acb` o `a5b`. El `.` es muy útil en expresiones regulares cuando se quiere flexibilizar una búsqueda, permitiendo que cualquier carácter esté en una posición específica.
NO TIENE NINGUN SENTIDO LO QUE HICE! YO PENSANDO LO MISMO XD
. ⇒ Encuentra todo lo que sea un carácter. No la línea completa, sino carácter a carácter.
:clap
excelente video
Saludos empezando este curso con expectativas, al parecer para esta fecha diciembre 2023, Atom dejó de existir, así que los que tengan que trabajar con VS Code les dejo un link super explicativo de como usar las expresiones regulares <https://blog.devsense.com/2022/find-and-replace-with-regexp>

Para los que no quieran descargar ningun editor de codigo y trabajar en linea les recomiendo

https://regexr.com/

Buscar expresiones regulares en un txt con Jupyterlabs (para los que vienen de machine learning)

fh = open(r"C:\Users\Alfonso Zapata\jupyter\Cursos\Junio 2022\Curso de expresiones regulares - platzi\REGEX-master\liners.txt", "r").read()
fh
import re

for line in re.findall("...", fh):
    print(line)

Recordar modificar el codigo con la ruta de acceso de su archivo .txt a examinar

Muy buen incio, entendido a la perfecccion.

el caracter . ayuda a buscar todos los caracteres en el archivo de texto

El carácter “ . ” nos permite detectar cualquier carácter dentro de un texto, incluido los espacios, es importante destacar que si se utilizan varios puntos seguidos buscara por grupos el número de puntos.

Se podría decir que el uso del (.) en expresiones regulares se asemeja al uso del wildcard (*) en la terminal.

El caracter punto (.) nos permite conseguir cualquier caracter dentro de un archivo de texto, contentivo de cadenas de caracteres, entendiendo los espacios como un caracter. Cuando hace la búsqueda encuentra solo los caracteres no las lineas enteras, esto es en el caso de colocar el punto solo; si colocamos dos o mas puntos, buscara agrupaciones de dos o mas caracteres en nuestros archivos de texto.

El caracter (.)

Denota cualquier caracter

super

El punto (.) en Regex según entiendo funciona como el wildcart de linux asterisco (*)

hasta yo me sorprendi, pude llevar el hilo de la clase del profe.

muy buena explicacion, excelente

Excelente.

woow el punto magico excelente

CSV: Cadenas de caracteres

  • Carácter ASCII seguidos entre si

El caracter (.)

  • Es cualquier carácter. Un comodín

thanks