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
codice:
<table class="cast">....</table>
2) Ciascuna riga della tabella che contiene un nome è così composta
codice:
<td class="nm">....;\">(nome attore)</a></td>
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.
In pratica, al momento ho fatto così
Un primo pattern per estrarre tutto il codice html della tabella in modo da isolare la parte
codice:
pattern = Pattern.compile("<table class=\"cast\">(.+?)</table>");
matcher = pattern.matcher(paginaRicerca);
String cast = "";
if (matcher.find())
cast = matcher.group(1);
e in secondo luogo eseguo il ciclo solo sulla stringa appena estratta
codice:
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);
}
Il metodo così composto funziona. Quello che chiedo è se c'è un modo "più bello" per dire direttamente al pattern in che range eseguire