A cosa serve e come si usa questa regex?
Regex pratica per verificare la forma sintattica di un indirizzo email comune nei form web, senza la complessità estrema di RFC 5322.
Espressione Regolare (Pattern)
Flag consigliati:
nessuno · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
Integrazione nel codice
Snippet pronti all'uso// JavaScript (ES6+)
const regex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
const isValid = regex.test(text);
// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$~';
$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"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$"
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(`^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$`)
isValid := re.MatchString(text)
fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;
bool isValid = Regex.IsMatch(text, @"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$");
Come funziona (Spiegazione dettagliata)
^e$ancorano il controllo all’intera stringa dall’inizio alla fine.- La parte locale ammette caratteri alfanumerici e i simboli
._%+-. @divide obbligatoriamente il nome utente dal dominio.- Il dominio accetta etichette separate da punti e trattini.
- L’estensione TLD finale richiede almeno due lettere (
.it,.com,.org).
Casi d’uso consigliati
- Form di contatto e registrazione utente
- Pre-validazione client-side veloce
- Sanity check prima dell’invio di email
Esempi che corrispondono (Validi)
4 test passatiutente@example.com
nome.cognome+tag@dominio.it
a_b-1@sub.example.org
info@studio-legale.eu
Esempi rifiutati (Non validi)
5 test respintiutente@
@example.com
utente@example
utente name@example.com
utente@.com
Limiti tecnici e avvertenze
- Controllo puramente sintattico: non garantisce che la casella di posta esista o sia attiva.
- Per la sicurezza aziendale inviare sempre un’email con link di verifica o token.
Espressioni regolari correlate
Intermedio
Email conforme RFC 5322 (Standard)
Pattern raccomandato dagli standard W3C/HTML5 per il tag input type="email", coprendo caratteri speciali consentiti nella parte locale.
Vedi scheda
Base
Email con dominio specifico
Verifica che un indirizzo email appartenga obbligatoriamente a un dominio o a suoi sottodomini autorizzati.
Vedi scheda
Base
Estrai tutte le email da un testo
Pattern senza ancoraggi con word boundary per individuare ed estrarre tutti gli indirizzi email presenti in un testo non strutturato.
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.