Java Regex zuerst nur Übereinstimmung

8

Wie sage ich dem folgenden Regex, nur das erste Match zu finden? Der folgende Code findet alle möglichen Regex innerhalb der Zeichenfolge.

d. Ich suche nur nach den Indizes der Teilzeichenfolge (200-800;50]

%Vor%     
Mark Kennedy 16.09.2013, 23:19
quelle

1 Antwort

9

matcher.group(1) gibt die erste Übereinstimmung zurück.

Wenn Sie "lazy matching" anstatt "eager matching" meinen, versuchen Sie es mit einem? nach dem + im regulären Ausdruck.

Alternativ können Sie auch etwas spezifischeres als .+ verwenden, um den Inhalt zwischen den Klammern anzupassen. Wenn Sie nur Buchstaben, Zahlen und ein paar Zeichen erwarten, würde vielleicht etwas wie [-A-Z0-9;_.]+ besser funktionieren?

    
ATG 16.09.2013, 23:21
quelle

Tags und Links