Vai al contenuto
🛠️ToolsShed

Regex Cheat Sheet

Riferimento espressione regolare interattiva con test dei pattern live ed esempi copiabili con un clic.

Tester in Tempo Reale

Anchors

MotivoDescrizione
^Start of string / line
$End of string / line
\bWord boundary
\BNon-word boundary
\AStart of string only
\ZEnd of string only

Quantifiers

MotivoDescrizione
*0 or more times
+1 or more times
?0 or 1 time (optional)
{n}Exactly n times
{n,}n or more times
{n,m}Between n and m times
*?Lazy 0 or more
+?Lazy 1 or more

Character Classes

MotivoDescrizione
.Any character except newline
\dDigit [0-9]
\DNon-digit
\wWord char [a-zA-Z0-9_]
\WNon-word character
\sWhitespace
\SNon-whitespace
[abc]Character set — a, b, or c
[^abc]Negated set — not a, b, or c
[a-z]Character range

Groups & Alternation

MotivoDescrizione
(abc)Capturing group
(?:abc)Non-capturing group
(?<name>abc)Named capturing group
(?=abc)Positive lookahead
(?!abc)Negative lookahead
(?<=abc)Positive lookbehind
(?<!abc)Negative lookbehind
a|bAlternation — a or b

Flags

MotivoDescrizione
gGlobal — find all matches
iCase-insensitive
mMultiline — ^ and $ match line boundaries
sDotall — . matches newline too
uUnicode mode
ySticky — match at exact position

Common Patterns

MotivoDescrizione
^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$Email address
https?:\/\/[\w\-._~:/?#[\]@!$&'()*+,;=%]+URL (http/https)
^\+?[1-9]\d{1,14}$Phone number (E.164)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$Date (YYYY-MM-DD)
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$IPv4 address
^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$UUID v4
^#(?:[0-9a-fA-F]{3}){1,2}$Hex color code
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$Strong password (min 8 chars, upper+lower+digit)

Fai clic su un motivo per caricarlo nel tester

Informazioni sullo strumento

Le espressioni regolari sono un potente linguaggio di corrispondenza di schemi utilizzato nella programmazione, nell'elaborazione dei dati, nell'analisi del testo e in innumerevoli applicazioni. Imparare le regex può sembrare opprimente a causa della sua sintassi concisa e numerosi caratteri speciali, ma comprendere i fondamenti——ancoraggi, quantificatori, classi di caratteri, gruppi e lookarounds——sblocca la capacità di risolvere problemi di testo complessi elegantemente. Questo Foglio di aiuto Regex riunisce i modelli e i concetti più essenziali in un riferimento interattivo.

Semplicemente sfoglia i modelli e i concetti curati raggruppati per categoria: ancoraggi (^, $, \b), quantificatori (*, +, ?, {n,m}), classi di caratteri ([...], \d, \s), gruppi e acquisizioni (..., ?:...), e lookarounds (lookaheads e lookbehinds positivi e negativi). Il tester di schemi dal vivo ti consente di inserire la tua stringa di prova e regex propria per vedere i risultati evidenziati in tempo reale. Copia qualsiasi modello con un singolo clic e incollalo direttamente nel tuo codice o nello strumento di debug regex.

Aggiungi questo strumento ai segnalibri ogni volta che hai bisogno di un aggiornamento rapido della sintassi. Che tu stia convalidando indirizzi e-mail, analizzando file di registro, estraendo dati da HTML, ripulendo stringhe disordinate o cercando nel codice, le espressioni regolari sono indispensabili. I modelli mostrati sono compatibili con la maggior parte dei linguaggi (JavaScript, Python, Java, Go, ecc.), sebbene alcune funzionalità avanzate varino leggermente tra le implementazioni.

Domande Frequenti

Implementazione del Codice

import re

# Common regex patterns
email_pattern = r'^[w.-]+@[w.-]+.[a-zA-Z]{2,}$'
url_pattern = r'https?://[w-._~:/?#[]@!$&'()*+,;=%]+'
ipv4_pattern = r'^(?:(?:25[0-5]|2[0-4]d|[01]?dd?).){3}(?:25[0-5]|2[0-4]d|[01]?dd?)$'

# Test email
email = "user@example.com"
if re.match(email_pattern, email):
    print(f"{email} is valid")

# Find all matches
text = "Contact us at info@example.com or support@test.org"
emails = re.findall(r'[w.-]+@[w.-]+.[a-zA-Z]{2,}', text)
print("Found emails:", emails)

# Named groups
date_text = "Today is 2024-03-15"
match = re.search(r'(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})', date_text)
if match:
    print(f"Year: {match.group('year')}, Month: {match.group('month')}")

# Substitution
result = re.sub(r's+', ' ', "hello   world   foo").strip()
print(result)  # "hello world foo"

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.