A cosa serve e come si usa questa regex?
Verifica la struttura alfanumerica di 16 caratteri del Codice Fiscale per persone fisiche italiane.
Espressione Regolare (Pattern)
Flag consigliati:
i · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$
Integrazione nel codice
Snippet pronti all'uso// JavaScript (ES6+)
const regex = /^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$/i;
const isValid = regex.test(text);
// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$~i';
$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-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$"
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-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$`)
isValid := re.MatchString(text)
fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;
bool isValid = Regex.IsMatch(text, @"^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$");
Come funziona (Spiegazione dettagliata)
[A-Z]{6}rappresenta le prime 3 consonanti del cognome e le prime 3 del nome.[0-9]{2}indica le ultime due cifre dell’anno di nascita.[A-EHLMPRST]indica la lettera del mese (A=gen, B=feb, C=mar, D=apr, E=mag, H=giu, L=lug, M=ago, P=set, R=ott, S=nov, T=dic).[0-9]{2}indica il giorno (per le donne viene sommato 40, quindi da 41 a 71).[A-Z][0-9]{3}rappresenta il codice catastale del comune di nascita o dello stato estero.- L’ultima lettera
[A-Z]è il carattere di controllo (checksum calcolato dall’Agenzia delle Entrate).
Casi d’uso consigliati
- Validazione form di registrazione utenti italiani
- Sistemi di fatturazione e anagrafica clienti
- Pre-validazione rapida prima del calcolo algoritmico del checksum
Esempi che corrispondono (Validi)
3 test passatiRSSMRA85T10A562S
VRDLGI80A01H501U
BNCGNN90E55F205W
Esempi rifiutati (Non validi)
4 test respintiRSSMRA85T10A562
1234567890123456
RSSMRA85Z10A562S
RSSMRA85T10A5621
Limiti tecnici e avvertenze
- Questa regex effettua esclusivamente un controllo di forma sintattica. Non esegue il calcolo del carattere di controllo finale (algoritmo di Luhn modificato) e non gestisce tutti i casi eccezionali di omocodia con sostituzione di cifre in lettere.
Espressioni regolari correlate
Base
Partita IVA italiana
Verifica che il codice di Partita IVA italiana sia composto esattamente da 11 cifre numeriche.
Vedi scheda
Base
CAP italiano (Codice di Avviamento Postale)
Valida il Codice di Avviamento Postale italiano formato esattamente da 5 cifre numeriche.
Vedi scheda
Intermedio
Telefono italiano (Fisso e Cellulare)
Riconosce numeri di telefono fissi e mobili italiani con prefisso internazionale +39 o 0039 facoltativo e formattazione con spazi o trattini.
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.