Regular Expression findet nicht die erste Kombination

Dunas

Erfahrenes Mitglied
Hallo,

ich versuche mit RegularExpression ein paar Sachen aus einem Text zu ziehen.

Wenn ich jetzt den Text

Code:
String text = "Das Auto fuhr schnell, deswegen war es schnell weg";

habe.
Und folgenden Matcher anwende

Code:
Matcher m = Pattern.compile("Das.+schnell").matcher(text);

als Ergebnis kommt dann "Das Auto fuhr schnell, deswegen war es schnell" raus.
Somit findet er nicht das erste Auftreten der Kombination sondern das Letzte.

Kann ich das irgendwie umstellen?

Dunas


Noch mal der komplette Code.

Code:
String text = "Das Auto fuhr schnell, deswegen war es schnell weg";
		
Matcher m = Pattern.compile("Das.+schnell").matcher(text);
		
m.find();
		
String ergebnis = m.group();
		
System.out.println(ergebnis); // Ausgabe : "Das Auto fuhr schnell, deswegen war es schnell"
 
Quantoren von regulären Ausdrücken sind von Natur aus gierig, das heißt, sie werden auf das mögliche Maximum ausgedehnt. Du müsstest es also nicht-gierig machen: statt .+ also .+?.
 
Zurück