Originariamente inviato da LordSaga640
codice:
        Pattern p = Pattern.compile("</option>");
        String[] trovati = p.split("<option value=\"AG\">Agrigento - AG</option><option value=\"AL\">Alessandria - AL</option><option value=\"AN\">Ancona - AN</option>");
        Pattern p2 = Pattern.compile("<option value=\"(\\w\\w)\">(.+?) - (\\w\\w)");
        for (int i = 0; i < trovati.length; i++) {
            Matcher singola = p2.matcher(trovati[i]);
            if (singola.matches()) {
                System.out.println("Nome abbreviato: "+singola.toMatchResult().group(1)); // Stampa 17
                System.out.println("Nome intero: "+singola.toMatchResult().group(2)); // Stampa 23
                System.out.println("Nome abbreviato: "+singola.toMatchResult().group(3)); // Stampa 1986
            } else {
                System.out.println("Non corrisponsto");
            }
            System.out.println("================");
        }
Stampa:
Grazie mille però non capisco la parte relativa al Pattern p2, ovvero: Pattern.compile("<option value=\"(\\w\\w)\">(.+?) - (\\w\\w)");

Allora, \w starebbe a significare ogni lettera, numero e _ . Allora perchè ne hai messi due? E cosa significa quel "(.+?)" e quel meno (\\w\\w)? o_O