Autore Topic: problema regex  (Letto 600 volte)

Offline TheMonk

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
problema regex
« il: 19 Giugno 2012, 13:56:31 CEST »
0
Salve a tutti, sono nuovo nell'ambito della programmazione e in questi giorni mi stavo cimentando con le regex... Le sto utilizzando per prelevare i dati all'interno di una tabella del sito dell'aereoporto di Ciampino che contiene gli orari dei voli, i terminal ecc. La regex l ho trovata, nell activity ho fatto il collegamento con il sito così: Uri uri = Uri.parse(url);
mi dareste un consiglio per il passo successivo?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:problema regex
« Risposta #1 il: 19 Giugno 2012, 19:26:02 CEST »
0
Dipende da cosa vuoi fare nel passo successivo. Hai già fatto l'interfaccia grafica? Hai già estratto i dati per poi memorizzarli in variabili da visualizzare?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline TheMonk

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Windows 7
Re:problema regex
« Risposta #2 il: 20 Giugno 2012, 14:48:20 CEST »
0
Il problema principale è far compilare la regex... per vedere se il problema stesse la ho fatto una regex di un solo campo per provare se mi stampava qualcosa ma niente da fare... questo è il codice:
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                //stabilisco la connessione
                HttpClient client = new DefaultHttpClient();
                HttpGet request = new HttpGet("[url=http://www.adr.it/pax-fco-voli-in-tempo-reale?p_p_id=3_WAR_realtimeflightsportlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_count=3&_3_WAR_realtimeflightsportlet_tab=departure"]Voli in Tempo Reale Aeroporto di Fiumicino - Adr.it - Aeroporti di Roma[/url]);
                HttpResponse response = null;
                try {
                        response = client.execute(request);
                } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

                String html = "";
                InputStream in = null;
                try {
                        in = response.getEntity().getContent();
                } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                StringBuilder str = new StringBuilder();
                String line = null;
                try {
                        while((line = reader.readLine()) != null)
                        {
                            str.append(line);
                        }
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                try {
                        in.close();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                html = str.toString();
                //faccio compilare la regex
                Pattern p = Pattern.compile("(?ms)<td class=\"align-left col-5 .*?> (.*?)</td>" );
                Matcher m = p.matcher(html);
                 while (m.find()) { // Find each match in turn; String can't do this.
                     String name = m.group(1);
                     Object risultatoRegex = null;
                        //stampo il risultato
                     Log.d("Html", str.toString());
                 }
}
}