Ich möchte Gruppen erfassen, die mit einem Muster übereinstimmen, in dem die Eingabe diese Gruppe ein- oder mehrmals enthalten kann.
Beispiel:
%Vor%Ich möchte den "12. März 16" festhalten.
Von diesem habe ich leicht die Regex verwendet:
%Vor%Allerdings kann ich, wenn die Eingabe mehr als eine dieser Gruppen enthalten kann, die nachfolgenden Matches nicht erfassen.
Beispiel:
%Vor%So dass:
%Vor%Die Anzahl der übereinstimmenden Gruppen wird immer variieren. Daher frage ich mich, ob es eine Regex gibt, die über Eingaben funktioniert, die eine oder mehrere dieser Gruppen enthalten. Ich habe es versucht:
%Vor%Allerdings funktioniert es nicht. Hat das mehr damit zu tun, wie ich diese erfassten Gruppen speichere? Ich kann die Anzahl der Gruppen, die ich brauche, nicht vorbestimmen, besonders da die Regex über viele dieser Eingaben arbeiten muss.
Ich habe das Gefühl, dass es besser ist, das gesamte Datensegment zu erfassen und später mit matcher.find()
zu bearbeiten, um die Anzahl der benötigten Gruppen zu ermitteln.
Jede Hilfe wird sehr geschätzt.
Es wird einfacher sein, das spezifische Muster von Ihnen zu finden und die Teilstrings als mehrere Übereinstimmungen zu erhalten, die mit Matcher#find()
:
Siehe die Online-Java-Demo und die Regex-Demo .
Ich habe dem Muster Wortgrenzen hinzugefügt, um sicherzustellen, dass das Muster als ganzes Wort übereinstimmt, aber sie können weggelassen werden, wenn Ihre Teilstrings mit einem anderen Text verklebt sind.
Tags und Links java regex regex-group