Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    3

    Aiuto con espressioni regolari (regex)

    Salve a tutti, sto creando un programma che simula una prova di esame prendendo in modo random le domande in un file pdf.
    Ora il parser l'ho fatto e ho un'enorme stringone di domande con le relative risposte multiple.
    Dovrei trovare un espressione regolare in grado di tirarmi fuori, dato il numero di una domanda, sia la domanda sia le risposte!
    Avreste qualche idea?
    Mi sto esaurendo e non ne riesco a venire a capo.
    le domande sono sempre e tutte del tipo:

    0001. Quante cantiche compongono la Divina
    Commedia?
    A) Tre.
    B) Quattro.
    C) Trentatré.
    D) Dieci.
    0002. Chi è l'autore della raccolta di poesie il Canzoniere?
    A) Francesco Petrarca.
    B) Giovanni Boccaccio.
    C) Dante Alighieri.
    D) Guido Cavalcanti.
    0003. Quale delle seguenti opere è di Niccolò
    Machiavelli?
    A) Il Principe.
    B) La Vita nova.
    C) Orlando furioso.
    D) Decameron.
    0004. L'interiezione indica ...
    A) Uno stato emotivo.
    B) Una domanda.
    C) Un'affermazione.
    D) Una pausa.
    0005. Con quali delle seguenti parole è corretto
    usare l'articolo "un' " ?
    A) Amica.
    B) Amore.
    C) Altare.
    D) Enigma.

    I primi tentativi sono stati ad esempio:
    String numeroDomanda="0001.";
    Pattern pattern = Pattern.compile("numeroDomanda+.+\\n+.+\\n+.+.");

    Siccome non ho mai usato le regex e ho pochissimo tempo, qualcuno di voi mi aiuta a tirarne fuori una utile e funzionale?
    Grazieeee

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    3
    Nessuno mi puo dare un input?
    Mi basterebbe una regex che inizi con un numero che do io da tastiera tipo "0001." e finisce con "?" oppure con "..."
    Ho provato cosi:

    codice:
          String s="0001.";
    		Pattern pattern = Pattern.compile(s+"+[.-?]");
    		Matcher matcher = pattern.matcher(text);
    		while (matcher.find())
    		System.out.println(matcher.group());
    Ma non mi funge, mentre se provo con
    codice:
    Pattern pattern = Pattern.compile(s+"+.");
    Mi riesce a trovare solo la prima riga della domanda..scusate ma è la prima volta che uso le espressioni regolari.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Ma devi per forza procedere con le espressioni regolari?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    3
    no ma è la prima cosa che mi è venuta in mente..altre idee?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    potresti magari richiamare l'indexOf sul testo passando il numero della domanda richiesta , a partire dall'indice ottenuto (più la lunghezza della stringa passata come parametro) estrapoli la sottostringa relativa alla domanda e rispettive risposte multiple arrivando fino all'occorrenza del numero successivo a quello della domanda richiesta


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.