Modelli comuni per la pulizia
Una piccola raccolta di modelli riutilizzabili gestisce la maggior parte dei casi reali:- Prezzi.
[\d,.]+acquisisce valori numerici con virgole e punti decimali, rimuovendo simboli di valuta e testo circostante. La versione più precisa(\d{1,3}(?:,\d{3})*(?:\.\d{2})?)riconosce formati standard come1,299.99. - Numeri di telefono.
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}gestisce i comuni formati statunitensi, con o senza parentesi e con gruppi separati da trattini, punti o spazi. - Email.
[\w.+-]+@[\w-]+\.[\w.]+riconosce la maggior parte degli indirizzi email standard, uno degli impieghi più noti delle regex. - Date.
\d{4}-\d{2}-\d{2}riconosce il formato ISO;\w+ \d{1,2}, \d{4}gestisce stringhe nello stileMay 15, 2026. - Rimozione dei tag HTML.
<[^>]+>rimuove i tag da una stringa. - Normalizzazione degli spazi.
\s+riduce le sequenze di spazi a un solo spazio.
Consigli pratici
- Esegui test su campioni reali. Le pagine vere presentano particolarità assenti negli esempi ideali. Prova il modello sull’output del sito di destinazione prima di considerarlo affidabile.
- Usa quantificatori non avidi (
*?,+?). Quando il motore può scegliere tra una corrispondenza breve e una lunga,*e+selezionano per impostazione predefinita quella più lunga. Spesso non è ciò che serve. - Usa i gruppi di acquisizione. Le parentesi
()permettono di estrarre solo la parte che interessa da una corrispondenza più ampia: sono utili quando occorre riconoscere il contesto attorno al dato, ma conservare soltanto il dato stesso. - Fai attenzione ai casi limite locali. Una regex per prezzi basata sul formato statunitense (
1,299.99) funzionerà male con i numeri europei (1.299,99), nei quali virgola e punto si scambiano di ruolo. Lo stesso vale per date, numeri di telefono e notazioni decimali.