Grazie al tuo preziosissimo aiuto, ci siamo quasi!!!!![]()
Ho provato con:
E l'output è:codice:String str = "[a-zA-Z0-9 \\t]+"; String sep = "\\|"; String digit = "(\\d+)"; String regexp = str + sep + str + sep + digit + sep + digit + sep + digit + sep + str; //finto catalogo di esempio String [] record = new String[5]; record[0] = "Battlestar Galactica|Kobol’s Last Gleaming: Part 1|1|2004|12|Sci-Fi"; record[1] = "Friends|The One Where Joey Speaks French|10|2004|231|Sit-Com"; record[2] = "Lost|Exposé|3|2007|63|Drama"; record[3] = "NCIS ciao|Trojan Horse|4|2007|93|Crime Investigation"; record[4] = "The Simpson|Squadra Homer|7| 2005 |10 |Cartoon"; Pattern p = Pattern.compile(regexp); //scorro il catalogo e controllo gli episodi for(int i = 0; i < record.length; i++) { Matcher m = p.matcher(record[i]); if(m.matches()) System.out.println("La riga " + i + " è corretta > " + record[i]); else System.out.println("La riga " + i + " NON è corretta > " + record[i]); }
A quanto ho capito leggendo dall'output in relazione agli episodi [a-zA-Z0-9 \\t]+ non include anche caratteri accentati, punteggiatura e cose simili, come si può modificarla in questo caso?codice:La riga 0 NON è corretta > Battlestar Galactica|Kobol’s Last Gleaming: Part 1|1|2004|12|Sci-Fi La riga 1 NON è corretta > Friends|The One Where Joey Speaks French|10|2004|231|Sit-Com La riga 2 NON è corretta > Lost|Exposé|3|2007|63|Drama La riga 3 è corretta > NCIS ciao|Trojan Horse|4|2007|93|Crime Investigation La riga 4 NON è corretta > The Simpson|Squadra Homer|7| 2005 |10 |Cartoon
Secondo dubbio: nel caso mi trovi una situazione come: | 2005 |10 |
Sono sempre numeri ma con degli spazi in mezzo (è prevedibile che nel test ci siano righe simili) e (\\d+) in questo caso non me lo riconosce più.E' risolvibile?Avevo pensato ad un replaceAll che mi tolga tutti gli spazi, ma così facendo farei un casino con i titoli e i serial..

Rispondi quotando