A cosa serve e come si usa questa regex?
Valida una coppia di coordinate geografiche decimali (Latitudine da -90 a +90, Longitudine da -180 a +180) separate da virgola.
Espressione Regolare (Pattern)
Flag consigliati:
nessuno · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$
Integrazione nel codice
Snippet pronti all'uso// JavaScript (ES6+)
const regex = /^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$/;
const isValid = regex.test(text);
// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$~';
$isValid = (bool) preg_match($pattern, $text);
// Estrazione con gruppi
if (preg_match($pattern, $text, $matches)) {
print_r($matches);
}
# Python 3 (re)
import re
pattern = r"^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$"
is_valid = bool(re.search(pattern, text))
# Estrazione match
match = re.search(pattern, text)
if match:
print(match.group(0))
// Go (regexp)
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$`)
isValid := re.MatchString(text)
fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;
bool isValid = Regex.IsMatch(text, @"^[-+]?([1-8]?\d(?:\.\d+)?|90(?:\.0+)?),\s*[-+]?(180(?:\.0+)?|((?:1[0-7]\d)|(?:[1-9]?\d))(?:\.\d+)?)$");
Come funziona (Spiegazione dettagliata)
- Il primo gruppo valida la latitudine compresa nell’intervallo [-90.0, +90.0].
,\s*ammette la virgola e spazi di separazione.- Il secondo gruppo valida la longitudine compresa nell’intervallo [-180.0, +180.0].
Casi d’uso consigliati
- Localizzazione punti di interesse e mappe interattive (Google Maps, Leaflet)
- Applicazioni di tracking logistico e mobilità
- Form di inserimento posizioni geografiche
Esempi che corrispondono (Validi)
4 test passati41.9028, 12.4964
45.4642,9.1900
-33.8688, 151.2093
0, 0
Esempi rifiutati (Non validi)
4 test respinti91.0000, 12.0000
45.0000, 181.0000
45.0000
nord 45, est 12
Limiti tecnici e avvertenze
- Questa regex valida le coordinate in gradi decimali (DD). Per formati in gradi, primi e secondi (DMS es. 41°54'09"N) serve una regex specifica.
Espressioni regolari correlate
Base
Numero intero con segno opzionale
Riconosce numeri interi positivi, negativi o senza segno esplicito.
Vedi scheda
Base
Numero decimale con punto (Standard internazionale)
Riconosce numeri decimali con separatore punto, sia con parte intera esplicita che implicita (`.5`).
Vedi scheda
Base
Numero decimale con virgola (Formato italiano)
Valida numeri con la virgola come separatore decimale tipico della convenzione italiana ed europea.
Vedi scheda
Verifica empirica
Apri nel tester
Hai bisogno di collaudare questo pattern con i tuoi dati?
Apri il tester sandboxato con questa regex già caricata e verifica i gruppi di cattura.