A cosa serve e come si usa questa regex?
Verifica tramite lookahead che una password contenga almeno 8 caratteri, almeno una lettera minuscola, una maiuscola, un numero e un simbolo speciale.
Espressione Regolare (Pattern)
Flag consigliati:
nessuno · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,64}$
Integrazione nel codice
Snippet pronti all'uso// JavaScript (ES6+)
const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\\/?]).{8,64}$/;
const isValid = regex.test(text);
// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,64}$~';
$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])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?]).{8,64}$"
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])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,64}$`)
isValid := re.MatchString(text)
fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;
bool isValid = Regex.IsMatch(text, @"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]).{8,64}$");
Come funziona (Spiegazione dettagliata)
(?=.*[a-z])lookahead positivo che richiede almeno una lettera minuscola.(?=.*[A-Z])richiede almeno una lettera maiuscola.(?=.*\d)richiede almeno una cifra numerica.(?=.*[!@#$...])richiede almeno un carattere speciale o simbolo..{8,64}$impone una lunghezza compresa tra 8 e 64 caratteri complessivi.
Casi d’uso consigliati
- Imposizione policy di complessità password in fase di registrazione
- Requisiti di sicurezza per portali bancari, sanitari e aziendali
- Filtri di conformità standard OWASP e ISO 27001
Esempi che corrispondono (Validi)
3 test passatiSicurezza_2026!
P@ssw0rdPro!
OCEWeb#Dev2026
Esempi rifiutati (Non validi)
4 test respintisolominuscole123!
SOLOMAIUSCOLE123!
NienteSimboli123
Corto1!
Limiti tecnici e avvertenze
- Le linee guida moderne (NIST SP 800-63B) privilegiano passphrase lunghe (es. 15+ caratteri) rispetto a regole di complessità forzate che inducono gli utenti a creare pattern prevedibili.
Espressioni regolari correlate
Base
Hash SHA-256
Valida un’impronta crittografica SHA-256 composta esattamente da 64 caratteri esadecimali.
Vedi scheda
Intermedio
UUID versione 4 (Universally Unique Identifier)
Valida un identificatore UUID v4 generato casualmente nel formato canonico 8-4-4-4-12 caratteri esadecimali con cifre di versione e variante corrette.
Vedi scheda
Base
UUID generico (Versioni 1–5)
Valida qualsiasi identificatore UUID conforme al formato esadecimale a 36 caratteri (8-4-4-4-12).
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.