Logo Wand.Tools

Generatore di espressioni regolari

Genera e spiega intelligentemente le espressioni regolari, supporta vari pattern di corrispondenza comuni

Tutorial sulle espressioni regolari (Regex) Java

Tutorial completo sulle espressioni regolari Java (con esempi) | Spiegazione dettagliata del tutorial Java Regex

Le espressioni regolari Java (Regex) sono uno strumento potente per l’elaborazione del testo, ampiamente utilizzato per la corrispondenza di stringhe, la convalida, la sostituzione e altro ancora. Questo articolo ti offre il tutorial Java Regex più pratico, accompagnato da esempi di codice dettagliati, per aiutarti a padroneggiare le competenze Java Regex e gestire facilmente vari scenari di sviluppo.


✅ Sintassi di base delle espressioni regolari

Espressione Descrizione
. Corrisponde a qualsiasi carattere eccetto il newline
^ Corrisponde all’inizio della stringa di input
$ Corrisponde alla fine della stringa di input
* Corrisponde all’elemento precedente 0 o più volte
+ Corrisponde all’elemento precedente 1 o più volte
? Corrisponde all’elemento precedente 0 o 1 volta
[] Corrisponde a qualsiasi carattere all’interno delle parentesi
[^^] Corrisponde a qualsiasi carattere non all’interno delle parentesi
{n} Corrisponde esattamente n volte
{n,} Corrisponde almeno n volte
{n,m} Corrisponde tra n e m volte (inclusi)
\d Corrisponde a un carattere numerico, equivalente a [0-9]
\w Corrisponde a un carattere “parola” (lettera, numero o underscore), equivalente a [a-zA-Z_0-9]
\s Corrisponde a qualsiasi carattere spazio
` `

🚀 Classi chiave per l’utilizzo delle espressioni regolari in Java

  • java.util.regex.Pattern
  • java.util.regex.Matcher

📌 Esempio base: Controllare se una stringa corrisponde a una Regex

import java.util.regex.*;

public class RegexExample1 {
    public static void main(String[] args) {
        String pattern = "^[a-zA-Z0-9]{6,12}$";
        String input = "abc12345";

        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(input);

        if (m.matches()) {
            System.out.println("Corrispondenza riuscita");
        } else {
            System.out.println("Corrispondenza fallita");
        }
    }
}

🧩 Esempio: Estrazione di tutti gli indirizzi email

import java.util.regex.*;

public class RegexExample2 {
    public static void main(String[] args) {
        String text = "Email di contatto: [email protected], [email protected]";
        String regex = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(text);

        while (m.find()) {
            System.out.println("Email trovata: " + m.group());
        }
    }
}

🔁 Esempio: Sostituzione di tutti i formati di numero di telefono

import java.util.regex.*;

public class RegexExample3 {
    public static void main(String[] args) {
        String input = "Telefono cliente: 13812345678, numero alternativo: 13987654321";
        String regex = "1[3-9]\\d{9}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input); // Corrected from original markdown

        String result = m.replaceAll("***Riservato***");
        System.out.println(result);
    }
}

🔍 Esempio: Validazione di formati comuni (telefono, email, carta d’identità)

public class RegexValidation {
    public static void main(String[] args) {
        String phone = "13812345678";
        String email = "[email protected]";
        String idCard = "110101199003077777";

        System.out.println(phone.matches("^1[3-9]\\d{9}$"));          // true
        System.out.println(email.matches("^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")); // true
        System.out.println(idCard.matches("^\\d{17}[\\dXx]$"));       // true
    }
}

🔐 Modelli Regex comuni (Consigliato da salvare)

  • Validazione numero di telefono: ^1[3-9]\\d{9}$
  • Validazione email: ^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$
  • Validazione numero carta d’identità: ^\\d{17}[\\dXx]$
  • Controllo forza password: ^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$
  • Validazione indirizzo IP: ^(\\d{1,3}\\.){3}\\d{1,3}$
  • Validazione indirizzo URL: ^https?://[\\w.-]+(?:\\.[\\w\\.-]+)+[/#?]?.*$

📈 Scenari di applicazione comuni delle espressioni regolari Java

  • Validazione di moduli (numero di telefono, email, password)
  • Estrazione di contenuti testuali (analisi log, estrazione indirizzi email)
  • Elaborazione di informazioni sensibili (es. sostituzione carte d’identità, numeri di telefono)
  • Sostituzione e pulizia di stringhe in batch
  • Standardizzazione dei formati dati