Validación de coordenadas GPS con regex
Clase 17 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
17:42 min - 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
Viendo ahora - 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
Las coordenadas están en todas partes. Con expresiones regulares bien pensadas puedes validar que una latitud y longitud estén bien formadas en formato decimal o en grados, minutos y segundos (DMS), sin pelearte con rangos numéricos que pertenecen al lenguaje de programación. Aquí tienes patrones prácticos, trucos para CSV y un extra para direcciones de what3words.
¿Cómo validar latitud y longitud con expresiones regulares?
Validar con regex es validar la forma, no el contenido matemático. Así evitas falsos negativos y dejas la lógica de rango a tu lenguaje favorito, como JavaScript o PHP.
¿Por qué validar forma y no valor?
- Diferencia clave: caracteres vs. valores.
- La regex garantiza el formato correcto (signo, dígitos, separadores).
- El lenguaje valida rango (ejemplo: 0–180 o 0–360). No lo fuerces en la regex.
- Evita sobrevalidar: más mantenible y menos errores.
¿Qué patrón usar para formato decimal?
Coordenada individual con precisión entre 1 y 6 decimales, con signo opcional y punto obligatorio:
-?\d{1,3}\.\d{1,6}
Par lat, long con coma y posible espacio (útil en CSV), anclado a línea completa:
^-?\d{1,3}\.\d{1,6},\s?-?\d{1,3}\.\d{1,6}$
Cuando la línea trae más campos (ejemplo: altitud tras otra coma), puedes permitir el resto con comodín:
^-?\d{1,3}\.\d{1,6},\s?-?\d{1,3}\.\d{1,6},.*$
- punto y coma del truco: usa
.*si puede haber cero o más caracteres..+exigiría al menos uno. - espacios opcionales en CSV:
\s?evita romper el parseo por “espacios de cortesía”. - anclajes
^y$: aseguran que todo sea válido, no solo un fragmento.
¿Cómo construir regex para grados, minutos y segundos (DMS)?
El formato DMS es más legible: grados, minutos, segundos con centésimas, comillas correctas y punto cardinal. Recuerda: la regex valida la forma; el rango (0–60, etc.) lo valida el lenguaje.
¿Qué estructura debe cumplir DMS?
Estructura por coordenada: signo opcional, 1–3 dígitos de grados, espacio, 1–2 dígitos de minutos + comilla simple ', espacio, 1–2 dígitos de segundos + punto + exactamente 2 decimales, comilla doble ", espacio y punto cardinal.
Par DMS anclado, con coma intermedia y posible espacio. Primera coordenada con east/west y segunda con north/south:
^-?\d{1,3} \d{1,2}' \d{1,2}\.\d{2}" [EW],\s?-?\d{1,3} \d{1,2}' \d{1,2}\.\d{2}" [NS]$
Notas rápidas:
- comillas correctas: ' para minutos y " para segundos.
- precisión fija en segundos: \d{2} para centésimas; si es 0, conserva 00.
- error común: confundir [EW] con [NS] entre izquierda y derecha. Asegura el orden correcto.
¿Cómo asegurar líneas bien formadas?
- usa anclajes
^...$para que no “cuelen” letras en la cola. - si metes una letra en los números, la regex debe fallar, y si no falla, revisa tus clases de caracteres.
- valores fuera de rango (p. ej., 354°) pueden pasar la regex, y está bien: el lenguaje hará esa validación numérica.
¿Cómo modelar direcciones what3words con regex?
what3words nombra cada cuadrado de 3×3 metros con tres palabras en minúsculas separadas por puntos. Para texto puro, evita atajos como \w porque incluyen dígitos y guion bajo.
¿Qué patrón capta tres palabras separadas por puntos?
Tres palabras con letras a-z, de 3 o más caracteres, separadas por puntos y ancladas:
^[a-z]{3,}\.[a-z]{3,}\.[a-z]{3,}$
Variantes útiles y equivalencias de cuantificadores:
- equivalente a “tres o más” sin llaves: [a-z][a-z][a-z]+.
- si la primera letra pudiera ser alfanumérica: ^[a-z0-9][a-z]{2,}\.[a-z]{3,}\.[a-z]{3,}$.
Consejos prácticos:
- clases de caracteres explícitas evitan sorpresas: no uses \w aquí.
- cuantificadores: + es uno o más; {3,} es “tres o más”. Ambas formas son válidas.
- consistencia: decide un estilo y úsalo en todo el patrón.
¿Quieres que revisemos un patrón específico o un ejemplo real de tus datos? Compártelo en los comentarios y lo afinamos juntos.