Logo Wand.Tools

Generatore di espressioni regolari

Genera e spiega intelligentemente le espressioni regolari, supporta vari pattern di corrispondenza comuni

Corrispondenza di indirizzi email tramite espressioni regolari - Tutorial completo

  # Corrispondenza di indirizzi email tramite espressioni regolari - Tutorial completo
  
  ## Corrispondenza base di email
  
  La regex più semplice per la corrispondenza di email:
  ```regex
  \S+@\S+\.\S+

Esempi di corrispondenza:

Corrispondenza di formati email comuni

Regex per formato email standard:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Caratteristiche:

  • Consente lettere maiuscole e minuscole, numeri
  • Supporta caratteri speciali come . _ % + -
  • La parte del dominio deve avere almeno 2 caratteri

Validazione email stretta

Regex standard RFC 5322:

^(?:[a-z0-9!#$%&'*+/=?^_\{|\}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_\{|\}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$

Supporto email internazionali

Regex che supporta caratteri Unicode:

^[^\s@]+@[^\s@]+\.[^\s@]+$

O una versione più precisa:

^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$

Scomposizione dell’espressione regolare

Prendendo come esempio la regex standard per email:

^                         # Inizio della stringa
[a-zA-Z0-9._%+-]+        # Parte del nome utente
@                         # Simbolo @
[a-zA-Z0-9.-]+           # Parte del dominio
\.                        # Punto
[a-zA-Z]{2,}             # Dominio di primo livello
$                         # Fine della stringa

Esempi di implementazione in varie lingue

JavaScript

const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

Python

import re
email_regex = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')

PHP

$emailRegex = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/';

Java

Pattern emailPattern = Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");

Domande Frequenti

1. Come corrispondere indirizzi email con indirizzi IP?

^[a-z0-9._%+-]+@([0-9]{1,3}\.){3}[0-9]{1,3}$

2. Come corrispondere indirizzi email con numeri di porta?

^[a-z0-9._%+-]+@[a-z0-9.-]+:\d+$

3. Come escludere indirizzi email da domini specifici?

^(?!.*@(spamdomain|blocked)\.com$)[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$

Ottimizzazione delle prestazioni

  1. Utilizzare gruppi non-capturanti (?:) invece di gruppi capturanti ().
  2. Evitare strutture annidate eccessivamente complesse.
  3. Eseguire prima la validazione di base sul frontend web.
  4. Pre-compilare le espressioni regolari per casi d’uso ad alta frequenza.
^(?=[a-z0-9@.!#$%&'*+/=?^_\{|\}~-]{6,254}$)[a-z0-9._%+-]{1,64}@(?:[a-z0-9-]{1,63}\.){1,8}[a-z]{2,63}$