Originariamente inviato da nikynik
scusa mi spiegheresti come funzionano i gruppi... nel senso in che modo capisci cosa viene catturato in una regular espression
perchè a questo punto anche
"<\\?(?hp)?(.*?)\\?> dovrebbe catturare 2 gruppi
^^ ^^ .....o no?
Per iniziare, la tabella con tutte le espressioni regolari utilizzabili in Java la trovi qui. Non dico che devi saperla a memoria e nemmero capire tutti i vari costrutti (neanche io li so a memoria e non li conosco tutti) ma almeno avere una idea di massima su cosa si può fare.

C'è un costrutto speciale e lo spiega bene:
codice:
(?:X)    X, as a non-capturing group
Quindi è un raggruppamento ma senza essere catturato.

Usando la classe Matcher, puoi prendere i vari gruppi catturati con group(indice). I gruppi sono indicizzato da sinistra verso destra partendo da 1. Il gruppo 0 denota l'intero pattern.