devo codice successivo:non avidi Regular Expression in Java
public static void createTokens(){
String test = "test is a word word word word big small";
Matcher mtch = Pattern.compile("test is a (\\s*.+?\\s*) word (\\s*.+?\\s*)").matcher(test);
while (mtch.find()){
for (int i = 1; i <= mtch.groupCount(); i++){
System.out.println(mtch.group(i));
}
}
}
E avere in uscita il prossimo:
word
w
Ma a mio parere deve essere:
word
word
Somebody per favore spiegami perché così?
E ora il secondo gruppo sta catturando troppo invece che troppo poco. La non avidità non è il problema, e l'avidità non è la soluzione. –
Hai ragione, ma IMHO, la non-golosità del secondo gruppo che cattura spiega perché cattura semplicemente "w". Il primo gruppo che cattura deve catturare "parola" a causa della "parola" letterale che la segue. Non so esattamente cosa stia cercando e ha modificato la domanda dopo aver inviato la mia risposta, quindi non posso fornire un'espressione regolare corretta. – theglauber