Sto utilizzando, da poco, le espressioni regolari in Java, ho fatto questo codice di prova:
E fin qui tutto bene, visto che ho detto all'espressione regolare di cercarmi qualsiasi carattere ripetuto più volte, quindi mi stampa tutta la stringa.
Il problema e quando vorrei cercare ti prendere il contenuto della stringa all'esterno e all'interno dei caratteri [ e ], modificando il mio codice cosi:
Eseguendo questo codice non mi viene restituito in output, io credo che il problema sia il carattere [, che lo considera come un carattere speciale, se è cosi come potrei risolvere?
P.S.: Ah.. vorrei chiedervi anche una piccola domanda. E' possibile recuperare il valore di mtc.group(1) e mtc.group(2) senza utilizzare il ciclo while?
Codice:
import java.util.regex.*;
public class regexp {
public static void main(String[] args)
{
String str = "prova carattere speciale [cosa vedi?]";
Pattern ptn = Pattern.compile("(.*)");
Matcher mtc = ptn.matcher(str);
while (mtc.find())
{
System.out.println(mtc.group(1));
}
}
}
E fin qui tutto bene, visto che ho detto all'espressione regolare di cercarmi qualsiasi carattere ripetuto più volte, quindi mi stampa tutta la stringa.
Il problema e quando vorrei cercare ti prendere il contenuto della stringa all'esterno e all'interno dei caratteri [ e ], modificando il mio codice cosi:
Codice:
public class regexp {
public static void main(String[] args)
{
String str = "prova carattere speciale [cosa vedi?]";
Pattern ptn = Pattern.compile("(.*)[(.*)]");
Matcher mtc = ptn.matcher(str);
while (mtc.find())
{
System.out.println(mtc.group(1));
System.out.println(mtc.group(2));
}
}
}
Eseguendo questo codice non mi viene restituito in output, io credo che il problema sia il carattere [, che lo considera come un carattere speciale, se è cosi come potrei risolvere?
P.S.: Ah.. vorrei chiedervi anche una piccola domanda. E' possibile recuperare il valore di mtc.group(1) e mtc.group(2) senza utilizzare il ciclo while?