Costruttore di Pattern Regex
Il Costruttore di Pattern Regex traduce una descrizione in linguaggio naturale di ciò che vuoi trovare in un'espressione regolare funzionante, con una spiegazione passo passo di ogni componente. Elimina il ciclo di tentativi ed errori nella scrittura di regex, producendo un pattern, spiegando perché funziona e fornendo test case che dimostrano la gestione sia dei match attesi sia degli edge case comuni.
Sviluppatori di ogni livello di esperienza usano questo template quando devono validare formati di input, estrarre dati da stringhe, costruire pattern di ricerca o scrivere trasformazioni di testo. È particolarmente utile per chi scrive regex di rado e dimentica la sintassi tra un utilizzo e l'altro, o per pattern complessi dove anche gli sviluppatori esperti traggono vantaggio da un secondo sguardo sugli edge case.
Il prompt richiede di specificare il linguaggio di programmazione o il dialetto regex perché la sintassi varia significativamente (il modulo re di Python, il motore regex di JavaScript, PCRE, POSIX). Richiede anche esempi di stringhe che devono e non devono corrispondere, così l'AI lavora su test case concreti invece che su regole astratte. L'output include sia il pattern regex sia una spiegazione carattere per carattere, così puoi capire e mantenere il pattern invece di trattarlo come una scatola nera.
This prompt is just the starting point
Score it with AI, optimize it with one click, track versions, and build your prompt library.
The Prompt
Costruisci un pattern di espressione regolare per il seguente requisito: **Cosa Voglio Trovare**: [DESCRIVI IN LINGUAGGIO NATURALE, es. "Indirizzi email che terminano con .edu o .ac.uk", "Numeri di telefono in formato italiano con o senza prefisso internazionale", "Tutte le date in formato YYYY-MM-DD dove l'anno è tra 2000 e 2029"] **Linguaggio di Programmazione / Dialetto Regex**: [Python / JavaScript / Java / PHP (PCRE) / Go / Ruby / .NET / POSIX / altro] **Esempi Che DEVONO Corrispondere**: ``` [ELENCA 3-5 STRINGHE CHE DEVONO ESSERE TROVATE] ``` **Esempi Che NON Devono Corrispondere**: ``` [ELENCA 3-5 STRINGHE CHE DEVONO ESSERE RIFIUTATE] ``` **Requisiti Aggiuntivi**: - [es. "Case insensitive", "Deve corrispondere all'intera stringa (non parziale)", "Deve catturare la parte del dominio in un gruppo con nome", "Deve funzionare in contesto multilinea"] Fornisci la risposta in questo formato: 1. **Il Pattern**: L'espressione regolare completa, pronta da copiare e incollare nel codice. 2. **Analisi del Pattern**: Spiega ogni componente della regex su una riga a sé: - `^` - Ancora di inizio stringa - `[A-Za-z]` - Corrisponde a qualsiasi lettera... - *(continua per ogni componente significativo)* 3. **Esempio di Codice**: Uno snippet funzionante nel linguaggio specificato che dimostra il pattern in uso (matching, estrazione di gruppi o sostituzione). 4. **Tabella dei Risultati del Test**: Una tabella che mostra ogni stringa di esempio (sia quelle che devono corrispondere sia quelle che non devono), il risultato atteso (match/no match) e il risultato effettivo del pattern. 5. **Edge Case da Tenere d'Occhio**: Elenca 3-5 edge case che potrebbero mettere in difficoltà questo pattern in produzione (es. caratteri Unicode, stringhe vuote, input molto lunghi, interruzioni di riga) e se il pattern li gestisce. Se non li gestisce, fornisci un pattern modificato che lo faccia. 6. **Nota sulle Performance**: Se il pattern potrebbe soffrire di backtracking catastrofico su certi input, spiega perché e fornisci un'alternativa più sicura.
Usage Tips
- Fornisci esempi concreti, non solo descrizioni: "Numeri di telefono" è ambiguo. "+39 02 1234567, 3331234567, 06-12345678" è concreto. Più esempi fornisci, più il pattern sarà calibrato con precisione.
- Specifica sempre il dialetto regex: JavaScript non supporta i lookbehind negli ambienti più vecchi. Python usa
recon flag diverse da PCRE. Go non supporta i backreference. Il pattern giusto per un linguaggio può fallire in un altro. - Testa gli edge case personalmente: L'AI segnalerà i probabili edge case, ma testa sempre il pattern sui tuoi dati reali prima di andare in produzione. Le regex sono un'area dove anche piccole sviste causano bug reali.
- Chiedi prima la versione più semplice: Se ti serve un pattern complesso, inizia chiedendo una versione base che copra il 90% dei casi, poi aggiungi la gestione degli edge case in modo incrementale. Questo rende il pattern più facile da capire e da correggere.
- Usa gruppi con nome per l'estrazione: Se devi estrarre parti specifiche da un match (es. il prefisso da un numero di telefono), menzionalo nei requisiti. I gruppi con nome rendono il codice risultante molto più leggibile rispetto ai riferimenti posizionali.
Get more from this prompt
Save it, score it with AI, optimize it, and track every version. Free to start.