Ciao a tutti visto che sono nuovo con le RegEx ultimamente ho bisogno di un po di supporto![]()
Il mio problema è molto semplice (da esporre.... se lo fosse da risolvere non sarei qua)
1) La tabella contenente i nomi degli attori di una scheda IMDB è così intestata
2) Ciascuna riga della tabella che contiene un nome è così compostacodice:<table class="cast">....</table>
La mia domanda è. Come faccio a dire al pattern di fare "finchè trovi match col formato numero 2 continua ad andare", però devi farlo solo all'interno della tabella delimitata come al livello1.codice:<td class="nm">....;\">(nome attore)</a></td>
In pratica, al momento ho fatto così
Un primo pattern per estrarre tutto il codice html della tabella in modo da isolare la parte
e in secondo luogo eseguo il ciclo solo sulla stringa appena estrattacodice:pattern = Pattern.compile("<table class=\"cast\">(.+?)</table>"); matcher = pattern.matcher(paginaRicerca); String cast = ""; if (matcher.find()) cast = matcher.group(1);
Il metodo così composto funziona. Quello che chiedo è se c'è un modo "più bello" per dire direttamente al pattern in che range eseguirecodice:pattern = Pattern.compile("<td class=\"nm\">.+?';\">(.+?)</a></td>"); matcher = pattern.matcher(cast); System.out.println("Cast"); while (matcher.find()) { String attore = matcher.group(1); attori.add(attore); }

Rispondi quotando