20 pattern regex comuni che ogni sviluppatore dovrebbe conoscere
20 pattern regex comuni che ogni sviluppatore dovrebbe conoscere
La regex risolve problemi reali: validazione dell'input, estrazione dei dati e trasformazione delle stringhe. Questa guida presenta 20 espressioni regolari pronte all'uso che coprono le attività più comuni di elaborazione del testo. Ogni pattern include una spiegazione di ciò che trova.
1. Indirizzo email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
La parte locale consente lettere, cifre, punti e caratteri speciali. Il dominio consente lettere, cifre e punti. Il TLD deve avere almeno due lettere.
2. URL
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
Trova gli URL HTTP/HTTPS con www opzionale, nome di dominio, TLD, percorso e stringa di query.
3. Numero di telefono USA
^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$
Trova (555) 123-4567, 555-123-4567, 555.123.4567 e 5551234567.
4. Telefono internazionale
^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
Pattern permissivo per i numeri internazionali con prefissi nazionali.
5. Password forte
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Richiede 8+ caratteri, una minuscola, una maiuscola, una cifra, un carattere speciale. Usa asserzioni lookahead.
6. Data (AAAA-MM-GG)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
Formato ISO 8601. Mese 01-12, giorno 01-31. Non valida i limiti per mese (il 30 febbraio passa).
7. Data (MM/GG/AAAA)
^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$
Formato USA con le barre.
8. Ora (HH:MM 24 ore)
^([01]\d|2[0-3]):[0-5]\d$
Ore 00-23, minuti 00-59.
9. Indirizzo IPv4
^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$
Quattro ottetti. Per una validazione rigorosa (0-255), sostituisci \d{1,3} con (25[0-5]|2[0-4]\d|[01]?\d\d?).
10. Indirizzo IPv6
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
IPv6 completo con 8 gruppi di cifre esadecimali. Non gestisce l'abbreviazione ::.
11. Indirizzo MAC
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
Separato da due punti o trattini.
12. Codice colore esadecimale
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
A 3 cifre (#fff) o a 6 cifre (#ffffff), senza distinzione tra maiuscole e minuscole.
13. Numero di carta di credito
^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$
16 cifre con separatori opzionali. Non valida la somma di controllo Luhn.
14. CAP USA (ZIP Code)
^\d{5}(-\d{4})?$
12345 o 12345-6789.
15. Nome utente
^[a-zA-Z0-9_]{3,16}$
3-16 caratteri, solo lettere, cifre e trattini bassi.
16. Slug URL
^[a-z0-9-]+$
Lettere minuscole, cifre e trattini. Comune nei sistemi CMS.
17. Tag HTML
<\/?[\w\s]*>|<.+[\w\s]*>
Trova i tag di apertura e chiusura. Non adatto per HTML annidato.
18. Estensione file
\.([a-zA-Z]{2,})$
Estrae l'estensione senza il punto.
19. Normalizzazione degli spazi bianchi
\s+
Comprime più spazi, tabulazioni o nuove righe in uno solo.
20. Estrazione di numeri
-?\d+(\.\d+)?
Interi e decimali, inclusi i negativi.
Suggerimenti sulle prestazioni
- Sii specifico — evita
.*che può causare backtracking catastrofico. - Usa le ancore
^e$per limitare l'ambito di ricerca. - Testa i casi limite: stringhe vuote, stringhe lunghe, caratteri speciali.
Testa questi pattern online
Usa lo strumento di test regex per sperimentare con questi pattern. Incolla qualsiasi espressione, inserisci un testo di esempio e osserva le corrispondenze evidenziate in tempo reale. Il tester mostra i gruppi di cattura e aiuta a eseguire il debug dei pattern prima dell'uso.