Ich habe die java.util.regex.* Klassen für reguläre Ausdrücke in Java und alles gut so weit verwendet. Aber heute habe ich eine andere Anforderung. Nehmen wir zum Beispiel an, das Muster sei "aabb". Wenn die eingegebene Zeichenkette nun aa ist, wird sie definitiv nicht übereinstimmen, aber es besteht immer noch die Möglichkeit, dass, wenn ich bb anhänge, es zu aabb wird und es passt. Hätte ich jedoch mit cc begonnen, würde es nie passen, egal was ich anhänge.
Ich habe die Klasse Pattern und Matcher untersucht, aber keine Möglichkeit gefunden, dies zu erreichen.
Die Eingabe kommt vom Benutzer, und das System muss warten, bis das Muster übereinstimmt, oder es wird nie übereinstimmen, unabhängig von einer weiteren Eingabe.
Haben Sie einen Hinweis?
Danke.
1 Stimmen
Welche Regex haben Sie bis jetzt gefunden?
0 Stimmen
Nur um das zu verstehen - Sie sind auf der Suche nach "Regexing fortzusetzen", so zu sprechen, von dem Punkt, den Sie verlassen (ohne Wiederholen der Regex auf die gesamte Zeichenfolge), basierend auf zusätzliche Benutzereingaben? Wenn ja, ist das nicht möglich, aus Gründen, die ich erklären kann, wenn Sie dies bestätigen - es sei denn, Sie geben zusätzliche Einschränkungen.
0 Stimmen
Machen Sie die
bb
Teil optionalaa(bb)?
0 Stimmen
Vielen Dank für die Antworten. Grundsätzlich möchte ich wissen, ob die Zeichenfolge, die ich abzugleichen versuche, mit weiteren Eingaben noch mit dem Muster übereinstimmen kann oder ob sie überhaupt nicht übereinstimmt. Das Muster, das ich habe, kann nur Range [], Sub Range [ - ], * und Digits (/d) und Alpha A,B,C,D haben. Im Grunde jede Kombination von DTMF von der Wähltastatur.
0 Stimmen
Können Sie uns ein konkretes Beispiel für eine Regex geben, die Sie zu verwenden planen? Die meisten Antworten unten erfordern eine Menge Arbeit, wenn Sie sie implementieren wollen, aber vielleicht gibt es in Ihrer konkreten Situation einen einfacheren Weg.
0 Stimmen
@amit, was Sie also wissen wollen, ist, ob beim aktuellen Stand der Eingabe eine zusätzliche Eingabe hinzugefügt werden könnte, so dass der reguläre Ausdruck erfüllt wäre?
0 Stimmen
Übrigens, ich bin ab heute nicht mehr da, aber wenn du auf meinen Kommentar antworten kannst, gebe ich dir eine A+ Antwort, wenn ich zurückkomme ;)
0 Stimmen
@incrediman: Ich frage mich, was du sagen wirst, wenn du morgen wieder zur Arbeit kommst und Alan Moores Antwort liest :)
0 Stimmen
Schön - ich wusste nicht, dass Java diese Funktionalität hat; gut, dass ich gewartet habe :)