[Java] aiuto espressioni regolari, con caratteri speciali

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Sto utilizzando, da poco, le espressioni regolari in Java, ho fatto questo codice di prova:

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?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Conosco poco il java però per l'espressione regolare prova cosi

Codice:
Pattern.compile("(.*)\[(.*)\]");
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Si si, in effetti se non sbaglio, con le espressione regolare ci faceva cosi, ma, purtroppo, cosa che non mi spiego ho già provato in questo modo e mi restituisce errore: Invialid escape sequenze, per essere più sicuro ho riprovato, ma niente sempre la stessa cosa.

EDIT:

Ho risolto, grazie per l'aiuto, mi è bastato raddoppiare il segno in questo modo:

Codice:
Pattern.compile("(.*)\\[(.*)\\]");

Anche se non ho capito bene il perché il tuo codice, che avevo provato prima, mi restituisce errore.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M AIUTO ESERCIZIO JAVA Javascript 1
F Aiuto java script Javascript 2
K [Java] aiuto switch case Java 1
andreasuriani Aiuto script java Ajax 1
S Aiuto per 2 codifiche java Java 4
Sevenjeak [Java] Aiuto metodo trova successivo Java 0
M (java) Aiuto con chat in java Java 0
checcox87 lista eccezioni java (era: urgente aiuto) Java 2
A Aiuto!!!!Java Base Javascript 1
S Aiuto Java Package Java 4
M Aiuto Su Scroller Java Please! Javascript 1
L java api_google Javascript 0
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
F Script java elenco alfabetico non funziona Javascript 3
C Serializzazione in java Java 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
C Java client / server Java 0
F [OFFRO][RETRIBUITO] PROGRAMMATORE JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
C [Java] testare un metodo con Junit Java 1
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
S [OFFRO] Debug delle tue applicazioni Java Offerte e Richieste di Lavoro e/o Collaborazione 1
L [Java] Aggiungere elementi ad array JSON Java 0
B [Java] Paginazione in risposta HTTP Java 0
A [Java]Date diminuite di un giorno su db MySQL Java 0
P [Java] limite destro di un JFrame Java 5
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
A Verifica validità data in Java Java 2
L [Java] Errore json conversione Java 0
Drago73 [Java] leggere/scrivere txt server Java 0
M [Javascript] Java card Java 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
N [Java]problema jasper report dopo compilazione file .jar Java 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
N [Java] jbutton con funzioni Java 2
M [java] esercizio lunghezza array di stringhe Java 0
A [java] problema esercizio Java 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Raziel84 [Java] Combinazione elementi matrice Java 0
A [java] problema esercizio array Java 5
L da php a popup java PHP 2

Discussioni simili