- 1 1. Introduzione
- 2 2. Nozioni di base e sintassi delle espressioni regolari in MySQL
- 3 Riepilogo
- 4 3. Funzioni di espressione regolare aggiunte in MySQL 8.0 e versioni successive
- 5 4. Esempi pratici di espressioni regolari MySQL
- 5.1 4.1 Convalida degli indirizzi email
- 5.2 4.2 Verifica dei formati dei numeri di telefono giapponesi
- 5.3 4.3 Convalida del formato dei numeri di carta di credito
- 5.4 4.4 Rimozione dei tag HTML
- 5.5 4.5 Convalida del formato del codice postale (Giappone)
- 5.6 4.6 Filtraggio dei nomi utente (Rilevamento di parole non consentite)
- 6 Riepilogo
- 7 5. Considerazioni importanti quando si usano le espressioni regolari (Prestazioni e sicurezza)
- 8 Riepilogo
- 9 6. FAQ (Domande frequenti)
- 9.1 6.1 Quali pattern regex posso usare in MySQL?
- 9.2 6.2 Qual è la differenza tra LIKE e REGEXP?
- 9.3 6.3 Quali sono le differenze nelle funzionalità regex tra MySQL 5.x e MySQL 8.x?
- 9.4 6.4 Cosa devo fare se una regex non funziona come previsto?
- 9.5 6.5 Come posso migliorare le prestazioni delle query REGEXP?
- 10 Riepilogo
- 11 7. Riepilogo
1. Introduzione
Utilizzare le espressioni regolari in MySQL
MySQL è un potente sistema di gestione di database per la ricerca e la manipolazione dei dati, e supporta anche espressioni regolari (REGEXP) per consentire ricerche più flessibili. Con le espressioni regolari, è possibile estrarre in modo efficiente i dati che corrispondono a modelli specifici, nonché formattare o convalidare i dati.
Vantaggi dell’uso delle espressioni regolari in MySQL
L’uso delle espressioni regolari di MySQL offre vantaggi come:
- Ricerca avanzata : Estrarre facilmente dati che contengono stringhe o modelli specifici.
- Verifica dell’integrità dei dati : Utile per la convalida dell’input (ad esempio, convalidare i formati degli indirizzi email).
- Più potente dell’operatore LIKE : Rispetto a LIKE, che utilizza i caratteri jolly (
%e_), REGEXP consente di definire condizioni di ricerca complesse in modo più flessibile.
Scopo e struttura di questo articolo
Questo articolo spiega tutto, dalle basi delle espressioni regolari in MySQL all’uso avanzato, all’ottimizzazione delle prestazioni e alle nuove funzioni di espressioni regolari introdotte in MySQL 8.0 e versioni successive. Con esempi pratici, il contenuto è progettato per essere facile da comprendere anche per i principianti.
Struttura dell’articolo:
- Nozioni di base e sintassi delle espressioni regolari MySQL
- Funzioni di espressioni regolari introdotte in MySQL 8.0 e versioni successive
- Esempi pratici (validazione, estrazione dati, conversione di formato)
- Considerazioni importanti quando si usano le espressioni regolari (prestazioni, sicurezza)
- FAQ (Domande frequenti)
- Riepilogo
2. Nozioni di base e sintassi delle espressioni regolari in MySQL
Come utilizzare le espressioni regolari in MySQL
In MySQL, si utilizza l’operatore REGEXP (o RLIKE) per lavorare con le espressioni regolari. Simile all’operatore LIKE, viene usato per determinare se il valore di una colonna corrisponde a un modello regex specificato.
Sintassi di base
SELECT * FROM table_name WHERE column_name REGEXP 'regex_pattern';
Or
SELECT * FROM table_name WHERE column_name RLIKE 'regex_pattern';
RLIKE è un alias per REGEXP, e entrambi si comportano allo stesso modo.
Esempio
Ad esempio, per cercare record in cui il nome contiene il carattere “山”:
SELECT * FROM users WHERE name REGEXP '山';
Modelli di espressioni regolari di base
Nelle espressioni regolari MySQL, è possibile utilizzare modelli come i seguenti.
| Symbol | Meaning | Example | Result |
|---|---|---|---|
. | Any single character | a.c | Matches “abc”, “aac”, “adc” |
^ | Start of the string | ^abc | Matches “abcde” but not “dabc” |
$ | End of the string | xyz$ | Matches “axyz” but not “xyzb” |
[] | Any one of the specified characters | [abc] | Matches “a”, “b”, or “c” |
[^] | Any character not in the specified set | [^abc] | Matches any character except “a”, “b”, or “c” |
* | Repeat the preceding character 0 or more times | a* | Matches “”, “a”, “aa”, “aaa”, etc. |
+ | Repeat the preceding character 1 or more times | a+ | Matches “a”, “aa”, “aaa”, etc. (does not match the empty string) |
{n} | Repeat the preceding character exactly n times | a{3} | Matches “aaa” |
{n,} | Repeat the preceding character at least n times | a{2,} | Matches “aa”, “aaa”, “aaaa”, etc. |
{n,m} | Repeat the preceding character between n and m times | a{2,4} | Matches “aa”, “aaa”, “aaaa” |
Differenze rispetto all’operatore LIKE
MySQL fornisce anche l’operatore LIKE, comunemente usato per il matching di pattern semplici. Tuttavia, REGEXP è più potente di LIKE e supporta ricerche con condizioni più complesse.
Esempio 1: Utilizzare l’operatore LIKE
SELECT * FROM users WHERE name LIKE '%山%';
- Con
LIKE, è possibile cercare dati che contengono山, ma si possono usare solo caratteri jolly semplici (%e_).
Esempio 2: Utilizzare l’operatore REGEXP
SELECT * FROM users WHERE name REGEXP '^山';
- Con
REGEXP, è possibile estrarre solo i dati in cui il nome inizia con 山 .
Come specificare più modelli
È possibile usare | per specificare più modelli con una condizione OR.
Esempio: Ottenere gli utenti il cui cognome è “佐藤” o “田中”
SELECT * FROM users WHERE name REGEXP '佐藤|田中';
Corrispondenza negativa
Se si usa ^ all’interno di parentesi quadre, è possibile recuperare dati che “non contengono i caratteri specificati”.
Esempio: Dati che iniziano con un carattere diverso da “山”
SELECT * FROM users WHERE name REGEXP '^[^山]';
In questo caso, restituisce i record in cui il nome non inizia con 山.
Riepilogo
- In MySQL,
REGEXPconsente ricerche di pattern più potenti rispetto aLIKE. - Comprendere la sintassi di base e i pattern (
.,^,$,[],*,+, ecc.) consente ricerche flessibili. - È importante capire le differenze rispetto a
LIKEe utilizzare ciascuna in modo appropriato. - L’uso di
|permette di cercare con più pattern. - L’uso di classi di caratteri negative
[^ ]aiuta a cercare dati che non iniziano con caratteri specifici.
3. Funzioni di espressione regolare aggiunte in MySQL 8.0 e versioni successive
In MySQL 8.0, oltre all’operatore tradizionale REGEXP, sono state aggiunte quattro nuove funzioni per consentire ricerche di espressioni regolari più flessibili. Queste permettono di recuperare le posizioni delle corrispondenze, estrarre sottostringhe e eseguire sostituzioni, ampliando notevolmente ciò che è possibile fare con le regex in MySQL.
In questa sezione, spieghiamo in dettaglio ciascuna nuova funzione di espressione regolare e mostriamo esempi concreti.
3.1 REGEXP_LIKE()
Panoramica
REGEXP_LIKE(), come l’operatore REGEXP, verifica se il valore di una colonna corrisponde a un pattern regex specificato.
Sintassi
REGEXP_LIKE(column_name, 'regex_pattern' [, flags])
column_name: la colonna da cercare'regex_pattern': il pattern regex usato come condizioneflags (optional): sensibilità al maiuscolo/minuscolo (usaiper corrispondenza case-insensitive)
Esempi
“Ottieni gli utenti il cui email termina con gmail.com o yahoo.co.jp”
SELECT * FROM users WHERE REGEXP_LIKE(email, '(@gmail\.com|@yahoo\.co\.jp)$');
“Cerca i nomi utente contenenti ‘admin’ (case-insensitive)”
SELECT * FROM users WHERE REGEXP_LIKE(username, 'admin', 'i');
✅ REGEXP_LIKE() ha lo stesso scopo dell’operatore REGEXP, ma consente uno stile più standard e compatibile con SQL.
3.2 REGEXP_INSTR()
Panoramica
REGEXP_INSTR() restituisce la posizione (indice di inizio) in cui si verifica una corrispondenza regex all’interno di una stringa.
Sintassi
REGEXP_INSTR(column_name, 'regex_pattern' [, start_position, occurrence, return_option, flags])
start_position(optional): dove iniziare la ricerca (default: 1)occurrence(optional): quale occorrenza della corrispondenza restituire (default: 1)return_option(optional): 0 (restituisce l’indice di inizio) o 1 (restituisce l’indice di fine della corrispondenza)flags(optional): usaiper corrispondenza case-insensitive
Esempi
“Se il numero di telefono inizia con 090 o 080, ottieni la posizione di inizio”
SELECT phone, REGEXP_INSTR(phone, '^(090|080)') AS match_pos FROM users;
“Ottieni la posizione di inizio della parte dominio in un indirizzo email”
SELECT email, REGEXP_INSTR(email, '@') AS domain_start FROM users;
- Restituisce la posizione in cui si trova
@(ad esempio,user@example.comrestituisce5).
✅ Con REGEXP_INSTR(), è possibile recuperare informazioni posizionali, ampliando le opzioni per l’elaborazione delle stringhe.
3.3 REGEXP_SUBSTR()
Panoramica
REGEXP_SUBSTR() estrae la sottostringa che corrisponde a un pattern regex all’interno di una stringa.
Sintassi
REGEXP_SUBSTR(column_name, 'regex_pattern' [, start_position, occurrence, flags])
occurrence(optional): ottieni la n-esima corrispondenza (default: 1)flags(optional): sensibilità al maiuscolo/minuscolo (iper ignorare il case)
Esempi
“Estrai solo la parte dominio da un indirizzo email”
SELECT email, REGEXP_SUBSTR(email, '@[a-zA-Z0-9.-]+') AS domain FROM users;
“Ottieni la prima sequenza numerica in un messaggio”
SELECT message, REGEXP_SUBSTR(message, '[0-9]+') AS first_number FROM logs;
✅ Con REGEXP_SUBSTR(), è possibile estrarre pattern specifici e usarli per organizzare e trasformare i dati.
3.4 REGEXP_REPLACE()
Panoramica
REGEXP_REPLACE() sostituisce le sottostringhe che corrispondono a un pattern regex con un’altra stringa.
Sintassi
REGEXP_REPLACE(column_name, 'regex_pattern', 'replacement' [, occurrence, flags])
replacement: la stringa con cui sostituire la parte corrispondenteoccurrence(opzionale): sostituisci solo la n‑esima occorrenza (se omessa, sostituisce tutte le occorrenze)flags(opzionale): usaiper il matching case‑insensitive
Esempi
“Rimuovere i trattini (-) dai numeri di telefono”
SELECT phone, REGEXP_REPLACE(phone, '-', '') AS clean_phone FROM users;
“Rimuovere i tag HTML”
SELECT comment, REGEXP_REPLACE(comment, '<[^>]+>', '') AS clean_text FROM reviews;
✅ Con REGEXP_REPLACE(), la conversione di formato e la pulizia dei dati diventano facili.
3.5 Sommario
| Function | Purpose | Example |
|---|---|---|
REGEXP_LIKE() | Check whether a value matches a regex pattern | SELECT * FROM users WHERE REGEXP_LIKE(email, '@gmail\.com$'); |
REGEXP_INSTR() | Get the start position of the matched substring | SELECT REGEXP_INSTR(email, '@') FROM users; |
REGEXP_SUBSTR() | Extract the matched substring | SELECT REGEXP_SUBSTR(email, '@[a-zA-Z0-9.-]+') FROM users; |
REGEXP_REPLACE() | Replace the matched substring | SELECT REGEXP_REPLACE(phone, '-', '') FROM users; |
4. Esempi pratici di espressioni regolari MySQL
Sfruttando le espressioni regolari di MySQL, è possibile semplificare le attività di elaborazione dei dati reali, come la convalida dei dati, l’estrazione di dati specifici e la conversione di formato. In questa sezione, presentiamo casi d’uso pratici con codice SQL e spiegazioni.
4.1 Convalida degli indirizzi email
Panoramica
Utilizza le espressioni regolari per verificare se gli indirizzi email memorizzati nel database rispettano un formato valido.
SQL da utilizzare
SELECT email FROM users
WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
Spiegazione
^[a-zA-Z0-9._%+-]+→ uno o più caratteri alfanumerici, punti, underscore o segni più prima di@@[a-zA-Z0-9.-]+→ un nome di dominio dopo@\.[a-zA-Z]{2,}$→ termina con un TLD (Top-Level Domain) di almeno 2 lettere (es.,.com,.jp,.net)
Con questa query, è possibile escludere indirizzi email non validi (es., user@@example.com, user@.com).
4.2 Verifica dei formati dei numeri di telefono giapponesi
Panoramica
Determina se i numeri di telefono giapponesi comuni (es., 090-1234-5678, 03-1234-5678) rispettano il formato corretto.
SQL da utilizzare
SELECT phone FROM users
WHERE phone REGEXP '^(0[789]0-[0-9]{4}-[0-9]{4}|0[1-9]-[0-9]{4}-[0-9]{4})$';
Spiegazione
0[789]0-[0-9]{4}-[0-9]{4}→ numeri mobili (090-xxxx-xxxx,080-xxxx-xxxx, ecc.)0[1-9]-[0-9]{4}-[0-9]{4}→ numeri fissi (03-xxxx-xxxx,06-xxxx-xxxx, ecc.)
In questo modo, le espressioni regolari sono utili quando è richiesta coerenza di formato.
4.3 Convalida del formato dei numeri di carta di credito
Panoramica
Convalida i formati dei numeri di carta di credito (Visa, Mastercard, American Express, ecc.).
SQL da utilizzare
SELECT card_number FROM payments
WHERE card_number REGEXP '^(4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$';
Spiegazione
^4[0-9]{12}(?:[0-9]{3})?$→ Visa (16 cifre o 13 cifre)^5[1-5][0-9]{14}$→ Mastercard (16 cifre)^3[47][0-9]{13}$→ American Express (15 cifre)
Con questa query, è possibile filtrare i numeri di carta non validi nel database (es., lunghezza errata o cifre iniziali non valide).
4.4 Rimozione dei tag HTML
Panoramica
Se i dati inviati dagli utenti contengono tag HTML, è possibile rimuoverli e convertire il contenuto in testo semplice.
SQL da utilizzare
SELECT REGEXP_REPLACE(comment, '<[^>]+>', '') AS clean_comment FROM reviews;
Spiegazione
'<[^>]+>'→ rimuove tutti i tag HTML compresi tra<e>
Esempio
| Input | Output |
|---|---|
<b>Hello</b> World! | Hello World! |
<p>これはサンプルです</p> | これはサンプルです |
Questo è utile per rimuovere i tag HTML da commenti degli utenti e post di blog.
4.5 Convalida del formato del codice postale (Giappone)
Panoramica
Convalida se i codici postali giapponesi (es., 123-4567) rispettano il formato corretto.
SQL da utilizzare
SELECT postal_code FROM addresses
WHERE postal_code REGEXP '^[0-9]{3}-[0-9]{4}$';
Spiegazione
^[0-9]{3}-[0-9]{4}$→ un codice postale nel formato “3 cifre-4 cifre”
Utilizzare questa regex aiuta a mantenere la coerenza dei dati e prevenire formati errati.
4.6 Filtraggio dei nomi utente (Rilevamento di parole non consentite)
Panoramica
Check whether usernames contain disallowed words reserved for system use (e.g., admin, root, system) during registration.
SQL da utilizzare
SELECT username FROM users
WHERE username REGEXP 'admin|root|system';
Spiegazione
admin|root|system→ rileva i nomi utente che contengono questi termini
Questa query aiuta a impedire agli utenti normali di utilizzare nomi destinati agli amministratori di sistema.
Riepilogo
- Le espressioni regolari possono essere usate per validare indirizzi email, numeri di telefono e numeri di carte di credito .
- Possono anche essere applicate per rimuovere tag HTML e convertire formati di dati .
- Sono efficaci per migliorare la sicurezza e la coerenza del database attraverso attività come filtrare parole non consentite e validare codici postali .

5. Considerazioni importanti quando si usano le espressioni regolari (Prestazioni e sicurezza)
L’uso delle espressioni regolari in MySQL consente ricerche potenti e pulizia dei dati. Tuttavia, un uso improprio può causare degrado delle prestazioni e introdurre rischi di sicurezza. Questa sezione spiega le considerazioni chiave per utilizzare le espressioni regolari di MySQL in modo sicuro ed efficiente.
5.1 Ottimizzazione delle prestazioni per le espressioni regolari
La ricerca con regex in MySQL è comoda, ma ha un inconveniente: gli indici generalmente non si applicano, il che può rendere le query più lente.
Misure per migliorare le prestazioni
- Combina indici
LIKEoFULLTEXTSELECT * FROM users WHERE email LIKE '%gmail.com';
- Usa espressioni regolari più semplici
SELECT * FROM users WHERE name REGEXP '^admin|admin$';
- Filtra prima i dati target
SELECT * FROM users WHERE email LIKE 'a%' AND email REGEXP '^[a-zA-Z0-9._%+-]+@gmail\.com$';
5.2 Rischi di sicurezza e contromisure
1. Denial of Service con espressioni regolari (ReDoS)
- Evita corrispondenze non limitate come
.*. - Usa
^e$per limitare l’ambito della ricerca. - Non passare direttamente l’input dell’utente a
REGEXP.
2. Iniezione SQL e espressioni regolari
❌ Query non sicura
SELECT * FROM users WHERE username REGEXP '$input';
✅ Query sicura (usa segnaposto)
$stmt = $pdo->prepare("SELECT * FROM users WHERE username REGEXP ?");
$stmt->execute([$sanitized_input]);
5.3 Compatibilità di versione
| Version | Main Features |
|---|---|
| MySQL 5.x | Only the REGEXP operator is available |
| MySQL 8.x | Adds REGEXP_LIKE(), REGEXP_INSTR(), REGEXP_SUBSTR(), and REGEXP_REPLACE() |
Riepilogo
- Poiché
REGEXPnon utilizza gli indici, le misure di prestazione sono importanti. - Per prevenire ReDoS (Denial of Service con espressioni regolari), evita l’uso eccessivo di caratteri jolly.
- Per prevenire l’iniezione SQL, non applicare direttamente l’input dell’utente a
REGEXP.
6. FAQ (Domande frequenti)
Ecco le domande comuni sull’uso delle espressioni regolari MySQL (REGEXP). Risolvere questi problemi ti aiuterà a utilizzare le regex in modo più efficace.
6.1 Quali pattern regex posso usare in MySQL?
| Symbol | Description | Example | Result |
|---|---|---|---|
. | Any single character | a.c | "abc", "aac", "adc" |
^ | Start of the string | ^abc | "abcde" (does not match "dabc") |
$ | End of the string | xyz$ | "axyz" (does not match "xyzb") |
[] | Any of the specified characters | [abc] | "a", "b", "c" |
[^] | Any character not in the specified set | [^abc] | Any character except "a", "b", "c" |
* | Repeat the preceding character 0 or more times | a* | "", "a", "aa", "aaa" |
+ | Repeat the preceding character 1 or more times | a+ | "a", "aa", "aaa" (does not match "") |
6.2 Qual è la differenza tra LIKE e REGEXP?
| Comparison | LIKE | REGEXP |
|---|---|---|
| Functionality | Simple pattern matching | Searching with complex regular expressions |
| Wildcards | % (any string), _ (any single character) | .* (any string), ^, $, [a-z], etc. |
| Search speed | Fast because indexes can apply | Often slower due to full table scans |
| Use cases | Simple searches (contains, prefix matching, etc.) | Complex searches based on specific patterns |
✅ Poiché LIKE è più veloce, preferisci LIKE per ricerche semplici e usa REGEXP quando è necessario un matching complesso.
6.3 Quali sono le differenze nelle funzionalità regex tra MySQL 5.x e MySQL 8.x?
| Version | Main Features |
|---|---|
| MySQL 5.x | Only the REGEXP operator is available |
| MySQL 8.x | Adds REGEXP_LIKE(), REGEXP_INSTR(), REGEXP_SUBSTR(), and REGEXP_REPLACE() |
6.4 Cosa devo fare se una regex non funziona come previsto?
✅ Checklist
- Verifica che l’escaping sia corretto
SELECT * FROM users WHERE email REGEXP '\.com$';
- Prova il flag
iconREGEXP_LIKE()SELECT * FROM users WHERE REGEXP_LIKE(username, 'admin', 'i');
- Verifica la codifica dei dati
SHOW VARIABLES LIKE 'character_set_database';
6.5 Come posso migliorare le prestazioni delle query REGEXP?
- Pre-filtra con
LIKESELECT * FROM users WHERE email LIKE '%gmail.com' AND email REGEXP '^[a-zA-Z0-9._%+-]+@gmail\.com$';
- Usa gli indici dove appropriato
ALTER TABLE users ADD FULLTEXT(email);
Riepilogo
REGEXPè più potente di LIKE, ma è necessario tenere presente le prestazioni.- In MySQL 8.0, sono state aggiunte nuove funzioni regex (come
REGEXP_LIKE()), consentendo un’elaborazione più flessibile. - Per migliorare le prestazioni: combinare con LIKE, utilizzare indici e progettare pattern regex semplici.
7. Riepilogo
Le espressioni regolari MySQL (REGEXP) sono molto utili per la ricerca dei dati, la convalida e la conversione di formati. Questo articolo ha trattato le basi delle regex MySQL, le nuove funzionalità introdotte in MySQL 8.0 e versioni successive, esempi pratici, considerazioni importanti e le FAQ.
7.1 Punti Chiave
Ecco un rapido riepilogo dei punti più importanti.
1. Nozioni di base sulle espressioni regolari MySQL
- L’utilizzo dell’operatore
REGEXPconsente un abbinamento di pattern più flessibile rispetto aLIKE. - Pattern regex comuni
^(inizio),$(fine),.(qualsiasi singolo carattere),[](classe di caratteri),+(una o più ripetizioni), ecc.
2. Nuove funzioni di espressioni regolari in MySQL 8.0+
In MySQL 8.0, sono state aggiunte queste quattro funzioni, consentendo un’elaborazione più flessibile:
REGEXP_LIKE(): un’alternativa all’operatoreREGEXPREGEXP_INSTR(): restituisce la posizione iniziale della sottostringa corrispondenteREGEXP_SUBSTR(): estrae la sottostringa corrispondenteREGEXP_REPLACE(): sostituisce le sottostringhe usando le regex
3. Esempi pratici
- Validazione degli indirizzi email
- Verifica di numeri di telefono e di carte di credito
- Rimozione dei tag HTML
- Validazione dei formati dei codici postali
- Rilevamento di parole non consentite
- Pulizia dei dati (rimozione spazi, virgole, ecc.)
4. Considerazioni importanti quando si usano le espressioni regolari
- Ottimizzazione delle prestazioni
- Poiché
REGEXPnon utilizza indici, può comportare scansioni complete della tabella. - È possibile migliorare le prestazioni combinando
LIKEo indiciFULLTEXT. - Misure di sicurezza
- Per prevenire ReDoS (Denial of Service tramite espressioni regolari), evitare l’uso eccessivo di
.*. - Per prevenire SQL injection, utilizzare i
placeholders.
5. FAQ (Domande frequenti)
- Pattern regex disponibili in MySQL
- Differenze tra
LIKEeREGEXP - Differenze di funzionalità tra MySQL 5.x e 8.x
- Risoluzione dei problemi quando le regex non si comportano come previsto
- Modi per migliorare le prestazioni
7.2 Best practice per l’uso delle espressioni regolari
- Mantenere i pattern regex semplici
- Esempio: evitare l’uso eccessivo di
.*e utilizzare^(inizio) e$(fine).
- Combinare con
LIKEoFULLTEXTquando opportuno
- Pre-filtrare con
LIKE, quindi applicareREGEXPper ridurre il costo della query.
- Utilizzare
REGEXP_REPLACE()per la pulizia dei dati
- Esempio: rimuovere i tag HTML e normalizzare gli spazi superflui.
- Sfruttare MySQL 8.0 e versioni successive
- L’uso di nuove funzioni come
REGEXP_LIKE()può rendere il SQL più leggibile.
- Applicare le misure di sicurezza in modo completo
- Non applicare direttamente l’input dell’utente a
REGEXP(prevenzione SQL injection). - Utilizzare i
placeholdersper le query dinamiche.
7.3 Risorse per approfondire
Ecco dei riferimenti per aiutarti a approfondire le espressioni regolari MySQL.
Documentazione ufficiale
7.4 Note finali
Le espressioni regolari MySQL possono essere utilizzate in molte situazioni, inclusa la ricerca, la pulizia e la convalida dei dati. Tuttavia, è importante usarle in modo appropriato comprendendo le considerazioni relative a prestazioni e sicurezza.
Speriamo che questo articolo ti sia utile quando lavori con le espressioni regolari MySQL. Prova ad applicare queste tecniche nei tuoi progetti!


