Cuantificadores regex: *, + y ? en acción
Clase 7 de 29 • Curso de Expresiones Regulares
Contenido del curso
El lenguaje: caracteres, operadores, y construcciones
- 5

El punto en regex: selecciona cualquier carácter
09:55 min - 6

\d \w \s: las 3 clases que localizan todo
13:55 min - 7

Cuantificadores regex: *, + y ? en acción
Viendo ahora - 8

Contadores en expresiones regulares
14:02 min - 9

Greedy vs lazy en regex: cuándo usar cada uno
07:47 min - 10

Negaciones con gorrito en expresiones regulares
06:49 min - 11

Cómo detectar números telefónicos sin letras
01:06 min - 12

Cómo procesar archivos CSV con millones de líneas
08:00 min
Uso práctico de Expresiones Regulares
- 13

Filtrar logs gigantes con expresiones regulares
07:22 min - 14

Expresiones regulares para URLs HTTP
08:07 min - 15

Regex para validar teléfonos con separadores y extensiones
12:30 min - 16

Validación de emails con regex
13:42 min - 17

Validación de coordenadas GPS con regex
17:16 min - 18

Validar nombres propios con regex
03:21 min
Usos avanzados en Expresiones Regulares
Expresiones Regulares en lenguajes de programación
- 20

Cómo extraer variables de URLs con regex
10:48 min - 21

Regex en múltiples lenguajes con CSV real
03:29 min - 22

Perl: CSV de fútbol en cero segundos
23:35 min - 23

Expresiones regulares en PHP: preg_match con CSV
09:29 min - 24

Extraer empates de archivos masivos con PHP
16:25 min - 25

Python regex para análisis de archivos CSV
21:58 min - 26

Lectura de archivos con BufferedReader en Java
07:59 min - 27

Escapar regex en Java: doble barra
08:48 min - 28

Validación de emails en JavaScript con regex
17:35 min - 29

Grep: filtra archivos masivos con regex
08:18 min
Aprende a construir expresiones regulares con seguridad y velocidad: desde clases de caracteres hasta cuantificadores esenciales. Aquí tienes un acordeón tipo cheat sheet (chuleta) que resume lo importante y cómo combinarlo para búsquedas y find/replace potentes.
¿Qué son las clases de caracteres y rangos en regex?
Las clases y rangos definen qué tipo de carácter se puede emparejar. Entenderlas evita pruebas al azar y hace tus patrones confiables.
¿Qué incluye cada clase de caracteres?
- \w: clase de “word”. Letras, dígitos y guion bajo. Viene de word.
- \d: dígitos. Equivale a [0-9].
- \s: espacios en blanco. Espacio, tab y caracteres invisibles.
- . (punto): cualquier carácter. Muy potente para “todo”.
- Guion bajo (_): parte de la clase de palabra.
¿Cómo se escriben los rangos?
- Rango de dígitos:
[0-9]. - Rango de letras:
[A-Z].
\w \d == [0-9] \s . [0-9] [A-Z]
¿Cómo funcionan los cuantificadores greedy en regex?
Los cuantificadores dicen “cuántos” caracteres deben aparecer. Por defecto son greedy: van por todo lo posible.
¿Qué hace cada cuantificador?
- *: cero o muchos. Greedy: toma todo lo que pueda.
- +: uno o más. Agrupa secuencias completas.
- ?: cero o uno. Opcional, exacto.
.* # cualquier cosa, todo. \d+ # uno o más dígitos. \d* # cero o más dígitos. [A-Z]? # cero o una letra mayúscula.
- Con
.*el match abarca líneas completas si es posible. Línea a línea, un solo match. - Con
\d+, “123” es un solo match, no “1”, “2”, “3” separados. - Con
\d*, también empareja “vacío” donde no hay dígitos. - El símbolo de interrogación tiene doble uso en regex: opcionalidad (cero o uno) y modo lazy. Lo segundo se verá más adelante.
¿Cómo combinar clases y cuantificadores para find/replace eficaces?
La fuerza está en mezclar clases con cantidades. Así defines patrones compactos que emparejan justo lo que necesitas y nada más.
¿Cómo exigir u opcionalizar partes del patrón?
- Parte obligatoria: carácter sin cuantificador. Ejemplo: la
Sal final debe estar. - Parte opcional (cero o uno):
?. - Parte repetible:
*(cero o muchas) o+(una o más).
\d*[A-Z]?S
\d*: puede haber dígitos o no antes.[A-Z]?: puede haber una letra (o no) después.S: obligatoria. No tiene cuantificador.
Variaciones útiles:
\d+[A-Z]?S: debe haber al menos un dígito antes de la S.\d*[A-Z]S: debe haber una letra antes de la S (no opcional).
¿Qué pasa al reemplazar con replace all?
- Sustituir con un guion “-” revela cuántos matches reales hubo.
- Con
.*, cada línea suele volverse un solo “-” porque el match cubre todo. - Pueden aparecer más reemplazos de los vistos: hay caracteres invisibles (como espacios o tabs) que también emparejan.
find: \d+ replace: - acción: replace all resultado: todas las secuencias numéricas sustituidas por “-”.
Tips prácticos:
- Si el case no coincide, ajusta tu búsqueda según convenga.
- El punto
.con*es potente pero amplio: úsalo con intención. - Piensa primero en lenguaje natural: “cero o muchos”, “uno o más”, “cero o uno”. Luego tradúcelo a
*,+,?.
¿Te quedó alguna duda puntual o quieres proponer un patrón real de tu trabajo para pulirlo juntos? Deja tu comentario y lo resolvemos paso a paso.